Office.in.th
คู่มือระบบ เนื้อหาผ่านการตรวจสอบแล้ว

การจัดการ Resource Controllers

Resource Controllers ใน Laravel คือ Controller ที่สร้างขึ้นเพื่อจัดการ CRUD (Create, Read, Update, Delete) ได้อย่างสะดวกและเป็นระบบ

Resource Controllers ใน Laravel คือ Controller ที่สร้างขึ้นเพื่อจัดการ CRUD (Create, Read, Update, Delete) ได้อย่างสะดวกและเป็นระบบ โดย Laravel มีคำสั่งที่ช่วยให้เราสามารถสร้าง Controller ที่มีฟังก์ชันการทำงาน CRUD พื้นฐานมาให้พร้อมใช้งานในทันที ทำให้นักพัฒนาสามารถสร้างแอปพลิเคชันที่ต้องการจัดการข้อมูลในรูปแบบมาตรฐานได้ง่ายขึ้น

การสร้าง Resource Controller

ในการสร้าง Resource Controller สามารถใช้คำสั่ง Artisan เพื่อสร้าง Controller ที่ประกอบด้วยเมธอดพื้นฐานที่ใช้ใน CRUD ทั้งหมดดังนี้

php artisan make:controller ProductController --resource

หลังจากรันคำสั่งนี้ ระบบจะสร้างไฟล์ ProductController.php ภายในโฟลเดอร์ app/Http/Controllers และประกอบไปด้วยเมธอดต่างๆ ที่ใช้จัดการข้อมูลตามมาตรฐาน CRUD ได้แก่:

  1. index - แสดงรายการทั้งหมด
  2. create - แสดงแบบฟอร์มสำหรับสร้างข้อมูลใหม่
  3. store - เก็บข้อมูลใหม่ลงในฐานข้อมูล
  4. show - แสดงข้อมูลเฉพาะรายการ
  5. edit - แสดงแบบฟอร์มสำหรับแก้ไขข้อมูล
  6. update - อัปเดตข้อมูลในฐานข้อมูล
  7. destroy - ลบข้อมูลออกจากฐานข้อมูล

ตัวอย่างการใช้งาน Resource Controller

ในตัวอย่างนี้จะอธิบายการใช้งาน Resource Controller ของ ProductController ที่สร้างขึ้น โดยแต่ละเมธอดทำหน้าที่ต่างกันดังนี้:

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ProductController extends Controller
{
    // แสดงรายการสินค้าทั้งหมด
    public function index()
    {
        return 'List of products';
    }

    // แสดงฟอร์มสร้างสินค้าใหม่
    public function create()
    {
        return 'Form to create product';
    }

    // เก็บสินค้าใหม่ลงในฐานข้อมูล
    public function store(Request $request)
    {
        return 'Store new product';
    }

    // แสดงสินค้ารายการเฉพาะโดยใช้ ID
    public function show($id)
    {
        return 'Display product ' . $id;
    }

    // แสดงฟอร์มแก้ไขสินค้า
    public function edit($id)
    {
        return 'Form to edit product ' . $id;
    }

    // อัปเดตข้อมูลสินค้าลงในฐานข้อมูล
    public function update(Request $request, $id)
    {
        return 'Update product ' . $id;
    }

    // ลบสินค้าออกจากฐานข้อมูล
    public function destroy($id)
    {
        return 'Delete product ' . $id;
    }
}

การกำหนด Route สำหรับ Resource Controller

Laravel มีฟังก์ชันที่ช่วยสร้างเส้นทางทั้งหมดที่จำเป็นสำหรับ Resource Controller โดยใช้คำสั่ง Route::resource() ในไฟล์ routes/web.php

use App\Http\Controllers\ProductController;

Route::resource('products', ProductController::class);

คำสั่งนี้จะสร้างเส้นทางทั้งหมดที่ต้องการในการทำงาน CRUD ซึ่งประกอบด้วย:

  • GET /products - เรียกใช้ index เพื่อแสดงรายการสินค้า
  • GET /products/create - เรียกใช้ create เพื่อแสดงฟอร์มสร้างสินค้า
  • POST /products - เรียกใช้ store เพื่อเก็บสินค้าใหม่
  • GET /products/{id} - เรียกใช้ show เพื่อแสดงสินค้ารายการเดียว
  • GET /products/{id}/edit - เรียกใช้ edit เพื่อแสดงฟอร์มแก้ไขสินค้า
  • PUT/PATCH /products/{id} - เรียกใช้ update เพื่ออัปเดตข้อมูลสินค้า
  • DELETE /products/{id} - เรียกใช้ destroy เพื่อลบสินค้า

การนำไปใช้งาน

การใช้ Resource Controller ช่วยลดเวลาในการเขียนโค้ด และจัดการโครงสร้างโค้ดได้ง่ายขึ้น โดยสามารถนำมาใช้จัดการข้อมูลในแอปพลิเคชันที่มีการดำเนินการ CRUD อย่างสม่ำเสมอ เช่น การจัดการข้อมูลสินค้า ผู้ใช้ บทความ ฯลฯ นอกจากนี้ยังสามารถกำหนด Route ทั้งหมดในบรรทัดเดียวด้วย Route::resource() ทำให้โค้ดมีความกระชับและเป็นระเบียบ

Office.in.th Custom Service

ต้องการพัฒนาระบบหรือปรับแต่งจากโครงสร้างนี้?

Office.in.th รับพัฒนาและออกแบบ Enterprise Web Application, API Integration และระบบบริหารงานภาครัฐ/เอกชน พร้อมการสนับสนุนระยะยาว

ดูบริการรับพัฒนาซอฟต์แวร์