0Pricing
PHP Academy · บทเรียน

โมเดล Eloquent และการย้ายโครงสร้างฐานข้อมูล

สร้างโมเดลและการย้ายโครงสร้างฐานข้อมูลด้วยคำสั่ง Artisan

โมเดล Eloquent และการย้ายโครงสร้างฐานข้อมูล เป็นบทเรียน PHP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน PHP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

Eloquent คืออะไร

Eloquent คือ ORM แบบ ActiveRecord ของ Laravel แต่ละตารางฐานข้อมูลจะมีคลาส Model ที่สอดคล้องกัน คลาสนี้ใช้แทนแถวข้อมูลและมีเมธอดสำหรับค้นข้อมูล

การสร้างโมเดล

ใช้ Artisan เพื่อสร้างโมเดล เพิ่ม -m เพื่อสร้างไฟล์การย้ายข้อมูลด้วย

$ php artisan make:model Post -m
# Creates:
# app/Models/Post.php
# database/migrations/xxxx_create_posts_table.php

คลาสโมเดล

โมเดล Eloquent ขั้นต่ำเพียงสืบทอดจาก Model ก็เพียงพอ Eloquent จะอนุมานชื่อตารางจากชื่อคลาสในรูปพหูพจน์แบบ snake_case

<?php
namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    protected $fillable = ["title", "body", "user_id"];
}

ไฟล์การย้ายข้อมูล

การย้ายข้อมูลจะกำหนดโครงสร้างตาราง เรียกใช้ php artisan migrate เพื่อนำไปใช้

<?php
public function up(): void
{
    Schema::create("posts", function (Blueprint $table) {
        $table->id();
        $table->string("title");
        $table->text("body");
        $table->foreignId("user_id")->constrained()->cascadeOnDelete();
        $table->timestamps();
    });
}

การเรียกใช้การย้ายข้อมูล

นำการย้ายข้อมูลที่รอดำเนินการไปใช้กับฐานข้อมูล

$ php artisan migrate
# Rollback:
$ php artisan migrate:rollback
# Fresh (drop all and re-migrate):
$ php artisan migrate:fresh

$fillable เทียบกับ $guarded

$fillable ระบุรายการที่อนุญาตให้กำหนดค่าหลายรายการพร้อมกัน ส่วน $guarded ระบุรายการที่ไม่อนุญาต อย่ากำหนด $guarded = [] ในระบบจริงโดยไม่พิจารณาอย่างรอบคอบ

<?php
// Whitelist approach (recommended):
protected $fillable = ["title", "body"];

// Blacklist approach:
protected $guarded = ["id", "created_at"];

การแปลงชนิดข้อมูล

คุณสมบัติ $casts จะแปลงค่าคอลัมน์เป็นชนิดข้อมูล PHP โดยอัตโนมัติ

<?php
protected $casts = [
    "is_published" => "boolean",
    "metadata"     => "array",       // JSON column
    "published_at" => "datetime",
];

การซ่อนและการแสดง

คุณสมบัติ $hidden จะยกเว้นคอลัมน์จากการแปลงเป็น JSON หรืออาร์เรย์ เหมาะสำหรับรหัสผ่านและโทเค็น

<?php
protected $hidden = ["password", "remember_token"];

การกำหนดชื่อตารางเอง

แทนที่ชื่อตารางเริ่มต้นด้วยคุณสมบัติ $table

<?php
protected $table = "blog_posts"; // instead of "posts"

การลบแบบนุ่มนวล

เพิ่มคุณลักษณะ SoftDeletes และคอลัมน์ deleted_at ระเบียนจะไม่ถูกลบจริง แต่จะถูกทำเครื่องหมายด้วยเวลาประทับและยกเว้นจากการค้นหาตามปกติ

<?php
use Illuminate\Database\Eloquent\SoftDeletes;

class Post extends Model {
    use SoftDeletes;
}

เวลาประทับ

โดยค่าเริ่มต้น Eloquent จะจัดการคอลัมน์ created_at และ updated_at ให้ ตั้งค่า $timestamps = false เพื่อปิดใช้งาน

สรุป

โมเดล Eloquent เชื่อมโยงกับตารางฐานข้อมูล ใช้ Artisan เพื่อสร้างโมเดลและการย้ายข้อมูลพร้อมกัน กำหนด $fillable เพื่อความปลอดภัยของการกำหนดค่าหลายรายการพร้อมกัน และใช้ $casts เพื่อแปลงชนิดข้อมูลโดยอัตโนมัติ

ตรวจสอบความเข้าใจ

แฟล็ก Artisan ใดใช้สร้างการย้ายข้อมูลพร้อมกับโมเดล

คำถามที่พบบ่อย

บทเรียน “โมเดล Eloquent และการย้ายโครงสร้างฐานข้อมูล” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “โมเดล Eloquent และการย้ายโครงสร้างฐานข้อมูล” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส PHP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส PHP Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “โมเดล Eloquent และการย้ายโครงสร้างฐานข้อมูล”

สร้างโมเดลและการย้ายโครงสร้างฐานข้อมูลด้วยคำสั่ง Artisan คุณปฏิบัติ PHP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน PHP Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน PHP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “โมเดล Eloquent และการย้ายโครงสร้างฐานข้อมูล” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน PHP Academy นี้ได้ไหม

ได้ บทเรียน PHP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. โมเดล Eloquent และการย้ายโครงสร้างฐานข้อมูล
  2. CRUD ด้วย Eloquent
  3. ความสัมพันธ์ของ Eloquent
  4. การโหลดข้อมูลล่วงหน้าและขอบเขตคำสืบค้น
← กลับไปที่ PHP Academy