Laravel 5.3 的這個檔案vendorlaravelframeworksrcIlluminateFoundationAuthAuthenticatesUsers.php中有這樣一個方法:
vendorlaravelframeworksrcIlluminateFoundationAuthAuthenticatesUsers.php
protected function guard() { return Auth::guard(); //这个语句是什么意思?返回个什么值? }
其中的 Auth::guard() 表示什麼意思?回傳個什麼值?
Auth::guard()
依照我的理解,每一個 Guard 代表一個使用者群組。
Guard
在 Laravel5.3 中對於多組使用者有更完善的支持,我們可以有多組使用者係統,比方說前台、後台各有一組使用者係統。
而 Guard 起到什麼作用呢,這裡可以舉個栗子
Auth::check() 是判斷使用者是否登入的方法,如果使用的預設使用者係統,那麼這樣使用沒問題。 但是使用兩組使用者的話,如何使用各組使用者的功能呢? Auth::guard('users')->check() 就是用来判断前台用户是否登录,而 Auth::guard('admins')->check() 就是用來判斷後台使用者是否登入的。
Auth::check() 是判斷使用者是否登入的方法,如果使用的預設使用者係統,那麼這樣使用沒問題。
Auth::check()
但是使用兩組使用者的話,如何使用各組使用者的功能呢? Auth::guard('users')->check() 就是用来判断前台用户是否登录,而 Auth::guard('admins')->check() 就是用來判斷後台使用者是否登入的。
Auth::guard('users')->check()
Auth::guard('admins')->check()
一般來說,你的auth.php 設定檔中,會設定一個default使用者群組,一般為users,則使用users群組使用者時候不用指定guard,而使用其他群組使用者時候,則需要使用guard來指定使用的哪一組用戶。
auth.php
或你可以看看文檔,可能會理解更多。
Guard 類別的原始碼https://github.com/laravel/framework/blob/5.1/src/Illuminate/Auth/Guard.php
依照我的理解,每一個
Guard
代表一個使用者群組。在 Laravel5.3 中對於多組使用者有更完善的支持,我們可以有多組使用者係統,比方說前台、後台各有一組使用者係統。
而
Guard
起到什麼作用呢,這裡可以舉個栗子一般來說,你的
auth.php
設定檔中,會設定一個default使用者群組,一般為users,則使用users群組使用者時候不用指定guard,而使用其他群組使用者時候,則需要使用guard來指定使用的哪一組用戶。或你可以看看文檔,可能會理解更多。
Guard 類別的原始碼
https://github.com/laravel/framework/blob/5.1/src/Illuminate/Auth/Guard.php