โมเดล 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โมเดล Eloquent และการย้ายโครงสร้างฐานข้อมูล
- CRUD ด้วย Eloquent
- ความสัมพันธ์ของ Eloquent
- การโหลดข้อมูลล่วงหน้าและขอบเขตคำสืบค้น