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

