1. Định nghĩa controller (Defining controller)
1. Định nghĩa controller (Defining controller)
Để tạo một controller, ta sử dụng lệnh Artisan sau:
php artisan make:controller HomeController
Các bạn mở file controller vừa tạo lên và quan sát nội dung của nó.
Mỗi controller có thể extends
với class App\Http\Controllers\Controller
. Base controller này cung cấp rất nhiều method thuận tiện, chẳng hạn method middleware
, cho phép ta đăng ký middleware cho cả controller hoặc từng method.
Lưu ý: Controller không bắt buộc phải
extends
base controllerApp\Http\Controllers\Controller
. Tuy nhiên bạn sẽ không thể truy cập các phương thức tiện ích nhưmiddleware
,validation
vàdispatch
tại controller đó. Trong tập này ta chỉ tìm hiểu về methodmiddleware
, các method còn lại sẽ được đề cập ở những tập sau.
Chúng ta hãy thử định nghĩa một method trong HomeController
xem sao:
Sau đó ta chỉ cần đăng ký controller ngay tại route như thế này:
Ở tham số thứ hai của Route::get
, thay vì truyền một Closure như trước kia, ta sẽ truyền một chuỗi có cú pháp Namespace\NameController@method
. Khi request có URI /
với phương thức GET
thì method show
trong HomeController
class sẽ được thực thi.
Bạn có thể truyền dữ liệu cho method controller thông qua tham số trên URI. Chẳng hạn mình có thêm route:
Vậy làm thế nào để phương thức page
trong HomeController
có thể nhận dữ liệu của tham số page
trong URI? Các bạn cần đăng ký thêm method page
tại HomeController
như sau:
Chúng ta cũng sẽ khai báo biến nhận dữ liệu như khi sử dụng Closure object, không khác một chút gì cả, bao gồm các tính chất như thứ tự biến dữ liệu, tham số tùy chọn...
Last updated