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