4. Controller middleware (ok)
https://viblo.asia/p/tap-14-controller-laravel-Ljy5VXOkZra
Thông thường khi đăng ký middleware trong file route, ta làm như sau:
Tuy nhiên sẽ thuận tiện hơn khi bạn đăng ký middleware trong hàm khởi tạo của controller. Sử dụng phương thức middleware
trong __construct
của class controller để đăng ký.
Laravel cung cấp cho chúng ta hai method except
và only
để mở rộng tính linh hoạt cho controller middleware.
Với method except
thì middleware đã đăng ký ở trước sẽ áp dụng trên tất cả các method có trong controller đó "ngoại trừ" method đã tham chiếu trong except
.
Trong trường này tất cả các method có trong UserController
đều được đăng ký middleware auth
ngoại trừ logout
.
Còn với method only
thì nó sẽ "chỉ" áp dụng lên method mà ta đã tham chiếu.
Trong trường này chỉ có method show
trong UserController
được đăng ký middleware auth
.
Ngoài ra, bạn có thể tự định nghĩa một middleware trong controller với dạng Closure object.
Với cách này giúp chúng ta code nhanh chóng khi cần xử lý một số logic nhỏ.
Lưu ý: Trong trường hợp có quá nhiều nhóm method được đăng ký các middleware khác nhau trong một controller thì bạn nên nghĩ đến việc phân chia controller đó thành nhiều controller nhỏ để dễ quản lý. Không nên xử lý logic quá nhiều để đăng ký middleware trong hàm khởi tạo của controller class.
Last updated