← กลับหลังบ้าน
CRUD คืออะไร?

Laravel Framework

CRUD คืออะไร?

Laravel ไม่ได้หมายถึงแค่จำคำสั่งได้ แต่หมายถึง สามารถสร้างระบบจัดการข้อมูลตั้งแต่เพิ่ม → แสดง → แก้ไข → ลบ ได้ครบวงจร โดยเข้าใจว่าแต่ละส่วนทำงานเชื่อมกันอย่างไร

1. CRUD คืออะไร?

CRUD ย่อมาจาก 4 การทำงานหลัก
 

CRUDความหมายLaravel
C — Createเพิ่มข้อมูลcreate() + store()
R — Readอ่าน/แสดงข้อมูลindex() / show()
U — Updateแก้ไขข้อมูลedit() + update()
D — Deleteลบข้อมูลdestroy()

 

ตัวอย่าง คือระบบ Portfolio


2. “เขียน CRUD ได้” ต้องทำอะไรเป็นบ้าง?

สมมติเราจะสร้าง Portfolio CRUD 
ขั้นที่ 1 — สร้าง Database

            ต้องรู้จัก Migration

             php artisan make:migration create_portfolios_table

             กำหนดข้อมูล เช่น
             Schema::create('portfolios', function (Blueprint $table) {
                          $table->id();
                          $table->string('title');
                          $table->text('description')->nullable();
                          $table->string('image')->nullable();
                          $table->timestamps();
            });
แล้วรัน  php artisan migrate

 

 

3. สร้าง Model
                     php artisan make:model Portfolio
                    ใน Model

class Portfolio extends Model
{
   protected $fillable = [
       'title',
       'description',
       'image',
   ];
}

ต้องเข้าใจว่า Model ใช้สำหรับติดต่อกับ Database 

เช่น 

Portfolio::all();   คือ ดึงข้อมูล Portfolio ทั้งหมด

 

 

4. สร้าง Resource Controller

php artisan make:controller PortfolioController --resource

Laravel จะสร้าง 7 methods ให้เรา

index()
create()
store()
show()
edit()
update()
destroy()

นี่คือ หัวใจสำคัญของ CRUD Laravel

 

 

 

5. ทำ Read — แสดงรายการ

                      Controller:

                      public function index()
                      {
                                         $portfolios = Portfolio::latest()->get();

                                         return view('backend.portfolio.index', compact('portfolios'));
                      }

                    Blade:

                   @foreach ($portfolios as $portfolio)              

                             {{ $portfolio->title }}               

                           {{ $portfolio->description }}

                   @endforeach

                   เมื่อเปิด /portfolio

                  ก็เห็นข้อมูลจาก Database นี่คือ R — Read

 

6. ทำ Create — เพิ่มข้อมูล

Controller:

public function create()
{
   return view('backend.portfolio.create');
}

สร้าง Form:

< form action="{{ route('portfolio.store') }}" method="POST">

   @csrf

   < input type="#" name="title" >

   < textarea name="description"> website

   < button type="#">
       Save
   

< /form>

 

เมื่อกด Save จะส่งไป

public function store(Request $request)
{ 
   Portfolio::create([
       'title' => $request->title,
       'description' => $request->description,
   ]);

   return redirect()
       ->route('portfolio.index')
       ->with('success', 'บันทึกข้อมูลสำเร็จ');
} 

นี่คือ C — Create

 

 

7. ทำ Update — แก้ไขข้อมูล

หน้า Edit:

public function edit($id)
{   
   $portfolio = Portfolio::findOrFail($id);

        return view(
            'backend.portfolio.edit',
             compact('portfolio')
       );
}  

Form:

<   form   action="{{ route('portfolio.update', $portfolio->id) }}"    method="POST"  >

        @csrf
        @method('PUT')

        <  input
            type="text"
            name="title"
            value="{{ $portfolio->title }}"  >

        <  button type="submit"  >
           Update
        < /button>

< /form >

 

Controller:

public function update(Request $request, $id)
{   
      $portfolio = Portfolio::findOrFail($id);

      $portfolio->update([
           'title' => $request->title,
      ]);

      return redirect()
         ->route('portfolio.index')
          ->with('success', 'แก้ไขข้อมูลสำเร็จ');
 }

นี่คือ U — Update

 

 

 

8. ทำ Delete — ลบข้อมูล

Blade:

<  form
   action="{{ route('portfolio.destroy', $portfolio->id) }}"
   method="POST" >

   @csrf
   @method('DELETE')

   < button type="submit" >
       Delete
   < /button >

< /form >

 

Controller:

public function destroy($id)
{ 
    $portfolio = Portfolio::findOrFail($id);

    $portfolio->delete();

    return redirect()
        ->route('portfolio.index')
        ->with('success', 'ลบข้อมูลสำเร็จ');
 }

นี่คือ D — Delete