Controllers ใน Laravel- การจัดการแอปพลิเคชันลอจิกและการโต้ตอบข้อมูล

Controllers เป็น Laravel คลาสที่รับผิดชอบในการจัดการลอจิกของแอปพลิเคชันและอำนวยความสะดวกในการโต้ตอบระหว่างโมเดลและมุมมอง Controllers ช่วยแยกตรรกะของแอปพลิเคชันออกจากอินเทอร์เฟซผู้ใช้ สร้างโครงสร้างโครงการที่ชัดเจนและบำรุงรักษาได้

 

สร้างตัวควบคุม

หากต้องการสร้างคอนโทรลเลอร์ใน Laravel คุณสามารถใช้ Laravel คำสั่ง Artisan ตัวอย่างเช่น ในการสร้างคอนโทรลเลอร์ชื่อ UserController คุณสามารถเรียกใช้คำสั่งต่อไปนี้ในเทอร์มินัล:

php artisan make:controller UserController

เมื่อสร้างตัวควบคุมแล้ว คุณสามารถกำหนดวิธีการจัดการภายในตัวควบคุมได้ ตัวอย่างเช่น ใน index() เมธอด คุณสามารถดึงข้อมูลจากโมเดลและส่งต่อไปยังมุมมองสำหรับแสดงผล:

namespace App\Http\Controllers;  
  
use App\Models\User;  
use Illuminate\Http\Request;  
  
class UserController extends Controller  
{  
    public function index()  
    {  
        $users = User::all();  
  
        return view('users.index', ['users' => $users]);  
    }  
  
    // Other handling methods  
}  

ในตัวอย่างข้างต้น เราใช้ User โมเดลเพื่อดึงข้อมูลผู้ใช้จากฐานข้อมูล จากนั้นเราจะส่งข้อมูลนี้ไปยัง users.index มุมมองเพื่อแสดงรายชื่อผู้ใช้

Controllers ยังรองรับเมธอดต่างๆ เช่น store(), update(), และ delete() เพื่อจัดการกับการสร้าง การอัปเดต และการลบข้อมูล คุณสามารถโต้ตอบกับฐานข้อมูลได้ด้วยวิธีเหล่านี้

 

อยู่ controller ใน route

หากต้องการใช้ a controller ใน route คุณสามารถระบุ controller ชื่อและวิธีการที่เกี่ยวข้องใน routes/web.php ไฟล์

use App\Http\Controllers\UserController;  
  
Route::get('/users', [UserController::class, 'index']);  

ในตัวอย่างนี้ เมื่อผู้ใช้เข้าถึง URL /users จะ Laravel เรียก index() เมธอดในนั้น UserController เพื่อจัดการคำขอ

 

สร้างมุมมองสำหรับหน้าจอรายชื่อผู้ใช้

หากต้องการสร้าง users.index ไฟล์ คุณสามารถใช้คำสั่งต่อไปนี้:

php artisan make:view users.index

คำสั่งนี้จะสร้าง index.blade.php ไฟล์ใน resources/views/users ไดเรกทอรี

เมื่อสร้างไฟล์แล้ว คุณสามารถเปิด index.blade.php ไฟล์และออกแบบอินเทอร์เฟซสำหรับ users.index เพจได้ คุณสามารถใช้ไวยากรณ์ Blade เพื่อสร้างโครงสร้าง HTML และแสดงข้อมูลจากตัวควบคุม

<!-- resources/views/users/index.blade.php -->  
@extends('layouts.app')  
  
@section('content')  
    <h1>Users</h1>  
    <ul>  
        @foreach($users as $user)  
            <li>{{ $user->name }}</li>  
        @endforeach  
    </ul>  
@endsection  

ในตัวอย่างด้านบน เราใช้ เล app.blade.php ย์เอาต์ผ่าน @extends('layouts.app') เนื้อหาของเพจถูกกำหนดภายใน @section('content') และแสดงรายชื่อผู้ใช้จาก $users ตัวแปรภายใน @foreach ลูป

ในการใช้ users.index เพจ คุณต้องกำหนดเส้นทางที่สอดคล้องกันใน routes/web.php ไฟล์เพื่อชี้ไปที่เมธอดในคอนโทรลเลอร์และส่งคืนมุม users.index มอง

 

โดยสรุป controllers ช่วย Laravel แยกตรรกะของแอปพลิเคชันและจัดการกับการประมวลผลข้อมูล คุณสามารถ สร้าง แอปพลิเคชันที่ มี controllers ประสิทธิภาพและบำรุงรักษาได้ใน Laravel