สอนการใช้งาน CRUD ด้วย Laravel

สำหรับการสร้าง CRUD (Create, Read, Update, Delete) ใน Laravel มีขั้นตอนดังนี้:

  1. สร้างโมเดล (Model) และตารางในฐานข้อมูล (Database Table) โดยใช้คำสั่ง artisan:

    php artisan make:model Product -m
    

    คำสั่งนี้จะสร้างโมเดล Product พร้อมกับ Migration สำหรับสร้างตาราง products ในฐานข้อมูล

  2. แก้ไขไฟล์ Migration เพื่อกำหนดฟิลด์ที่ต้องการสร้างในตารางโดยเพิ่มฟิลด์ต่างๆ ที่ต้องการใน function up():

    public function up()
    {
        Schema::create('products', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->text('description')->nullable();
            $table->float('price');
            $table->timestamps();
        });
    }
    
  3. สร้าง Controller สำหรับ CRUD โดยใช้คำสั่ง artisan:

    php artisan make:controller ProductController --resource
    

    คำสั่งนี้จะสร้าง Controller ชื่อ ProductController พร้อมกับ Resourceful Routes สำหรับ CRUD

  4. กำหนด Route ในไฟล์ web.php โดยใช้ Route::resource():

    Route::resource('products', 'ProductController');
    
  5. สร้าง View สำหรับแสดงผล โดยสร้างไฟล์ในโฟลเดอร์ resources/views/products/ ตามชื่อของฟังก์ชัน (index.blade.php, create.blade.php, edit.blade.php, show.blade.php)

  6. แก้ไขฟังก์ชันใน Controller ตามต้องการเพื่อดึงข้อมูลจากฐานข้อมูลและส่งไปยัง View ที่เกี่ยวข้อง

    public function index()
    {
        $products = Product::all();
        return view('products.index', compact('products'));
    }
    
    public function create()
    {
        return view('products.create');
    }
    
    public function store(Request $request)
    {
        $product = new Product;
        $product->name = $request->name;
        $product->description = $request->description;
        $product->price = $request->price;
        $product->save();
        return redirect('/products');
    }
    
    public function edit($id)
    {
        $product = Product::find($id);
        return view('products.edit', compact('product'));
    }
    
    public function update(Request $request, $id)
    {
        $product = Product::find($id);
        $product->name = $request->name;
        $product->description = $request->description;
        $product->price = $request->price;
        $product->save();
        return redirect('/products');
    }
    
    public function destroy($id)
    {
        $product = Product::find($id);
        $product->delete();
        return redirect('/products');
    }
    
  7. ใช้ Blade Template สำหรับแสดงผลใน View โดยใช้ตัวแปรที่ถูกส่งมาจาก Controller ในการแสดงผล

    <!-- index.blade.php -->
    @foreach ($products as $product)
        <div>{{ $product->name }}</div>
        <div>{{ $product->price }}</div>
    @endforeach
    
    <!-- create.blade.php -->
    <form method="POST" action="/products">
        @csrf
        <input type="text" name="name">
        <textarea name="description"></textarea>
        <input type="number" name="price">
        <button type="submit">Create</button>
    </form>
    
    <!-- edit.blade.php -->
    <form method="POST" action="/products/{{ $product->id }}">
        @csrf
        @method('PUT')
        <input type="text" name="name" value="{{ $product->name }}">
        <textarea name="description">{{ $product->description }}</textarea>
        <input type="number" name="price" value="{{ $product->price }}">
        <button type="submit">Update</button>
    </form>
    
    <!-- show.blade.php -->
    <div>{{ $product->name }}</div>
    <div>{{ $product->description }}</div>
    <div>{{ $product->price }}</div>
    <form method="POST" action="/products/{{ $product->id }}">
        @csrf
        @method('DELETE')
        <button type="submit">Delete</button>
    </form>
    

นี่คือขั้นตอนสำหรับการสร้าง CRUD ใน Laravel หากมีข้อสงสัยเพิ่มเติมสามารถดูเอกสารเพิ่มเติมได้ที่ https://laravel.com/docs/8.x/controllers#resource-controllers

แท๊ก

laravel laravel framework laravel crud crud
บทความยอดนิยม