NTM Solutions

Bài đăng nổi bật

🚀 Laravel 12 (2026) — Bài 04 — Controller : Trái tim xử lý logic của ứng dụng

Ở bài trước chúng ta đã tìm hiểu về Routing – nơi tiếp nhận các yêu cầu (Request) từ người dùng.  Tuy nhiên, nếu viết toàn bộ logic ngay tr...

Thứ Năm, 9 tháng 7, 2026

🚀 Laravel 12 (2026) — Bài 04 — Controller : Trái tim xử lý logic của ứng dụng

Ở bài trước chúng ta đã tìm hiểu về Routing – nơi tiếp nhận các yêu cầu (Request) từ người dùng. 

Tuy nhiên, nếu viết toàn bộ logic ngay trong file routes/web.php thì dự án sẽ nhanh chóng trở nên khó đọc và khó bảo trì.

Đó chính là lý do Controller ra đời.

Controller là gì?

Controller là nơi tiếp nhận Request từ Route, xử lý nghiệp vụ và trả kết quả về cho người dùng. Có thể hiểu đơn giản:

Route → Controller → Model → View

Controller đóng vai trò trung gian giữa giao diện (View) và dữ liệu (Model), giúp mã nguồn được tổ chức rõ ràng theo mô hình MVC.


Tạo Controller đầu tiên

Laravel cung cấp Artisan CLI để tạo Controller chỉ với một lệnh:

php artisan make:controller HomeController

Sau khi chạy lệnh, Laravel sẽ tạo file:

app/
└── Http/
    └── Controllers/
        └── HomeController.php

Đây là nơi chúng ta viết toàn bộ logic xử lý cho từng chức năng.


Action trong Controller

Mỗi phương thức (method) trong Controller được gọi là một Action.

Ví dụ:

class HomeController extends Controller
{
    public function index()
    {
        return "Xin chào Laravel 12";
    }

    public function about()
    {
        return "Trang giới thiệu";
    }
}

Sau đó khai báo Route:

use App\Http\Controllers\HomeController;

Route::get('/', [HomeController::class, 'index']);
Route::get('/about', [HomeController::class, 'about']);

Khi người dùng truy cập URL, Laravel sẽ tự động gọi Action tương ứng.


Resource Controller

Đối với các chức năng CRUD như Quản lý bài viết, Sản phẩm hay Danh mục, Laravel hỗ trợ Resource Controller.

Tạo Resource Controller:

php artisan make:controller PostController --resource

Laravel sẽ tạo sẵn các phương thức:

  • index()

  • create()

  • store()

  • show()

  • edit()

  • update()

  • destroy()

Đây là chuẩn được sử dụng trong hầu hết các dự án Laravel thực tế.


Truyền dữ liệu sang View

Controller không chỉ xử lý dữ liệu mà còn truyền dữ liệu sang Blade để hiển thị.

Ví dụ:

public function index()
{
    $title = "Học Laravel 12";

    return view('home', compact('title'));
}

Trong file Blade:

<h1>{{ $title }}</h1>

Laravel sẽ tự động truyền biến từ Controller sang View một cách đơn giản và rõ ràng.


Khi nào nên sử dụng Controller?

  • Khi xử lý nghiệp vụ.

  • Khi truy vấn cơ sở dữ liệu.

  • Khi gọi Model.

  • Khi trả về View hoặc JSON.

  • Khi muốn dự án dễ bảo trì và mở rộng.

Không nên viết quá nhiều logic trực tiếp trong Route vì sẽ khiến mã nguồn rối và khó quản lý.


Tổng kết

Trong bài học này chúng ta đã tìm hiểu:

  • Controller là gì.

  • Cách tạo Controller bằng Artisan.

  • Action trong Controller.

  • Resource Controller.

  • Truyền dữ liệu từ Controller sang View.

Ở bài tiếp theo, chúng ta sẽ học Blade Template Engine để xây dựng giao diện động, tái sử dụng layout và tạo các component chuyên nghiệp trong Laravel 12.

x0

quay về MỤC LỤC

Không có nhận xét nào:

Đăng nhận xét

Facebook Youtube RSS