Vì tôi có câu hỏi tương tự và các câu trả lời khác không cung cấp cho tôi thông tin tôi đang tìm kiếm (họ giải thích hoàn hảo những gì một người bảo vệ làm, nhưng không phải tại sao bạn phải lo lắng về việc gọi các phương pháp của nó), tôi sẽ cung cấp một câu trả lời khác.
Tôi cũng không chắc về sự khác biệt giữa các phương pháp do người auth()
trợ giúp cung cấp và các phương pháp do chính người bảo vệ cung cấp auth()->guard()
, vì chúng dường như cũng làm như vậy.
Nhanh chóng dd(auth())
tiết lộ rằng nó trả về một thể hiện của AuthManager
. Vì vậy, chúng ta có thể tra cứu lớp đó trong mã nguồn : Ở cuối AuthManager.php có một __call()
phương thức ma thuật chuyển tiếp tất cả các lệnh gọi không xác định đến guard()
phương thức của chính nó .
public function __call($method, $parameters)
{
return $this->guard()->{$method}(...$parameters);
}
Điều này cho chúng ta thấy rõ ràng rằng các phương pháp của auth()
và auth()->guard()
dường như không chỉ hoạt động giống nhau mà còn hoàn toàn giống nhau . Vì vậy, miễn là nên sử dụng bảo vệ mặc định, bạn ->guard()
có thể yên tâm bỏ qua một phần bổ sung .
$this->preventMinorsGuard();
. Có thể được sử dụng như thế này?