-
在控制器中的用法
// 判斷使用者角色 dd(auth()->user()->hasRole('admin')); dd(auth()->user()->hasRole('user')); // 多個角色判斷(滿足其中一個即可,第二個可選引數,true時需要同時滿足) dd(auth()->user()->hasRole(['admin','user'])); //或者 dd(auth()->user()->hasRole(['admin','user'],true)); //並且 // 判斷使用者是否有相應許可權 dd(auth()->user()->can('create users')); // 匹配模式 dd(auth()->user()->can('*users')); // 多個許可權判斷(滿足其中一個即可,第二個可選引數,true時需要同時滿足) dd(auth()->user()->can(['create users','aaa'])); //或者 dd(auth()->user()->can(['create users','aaa'],true)); //並且 // 判斷角色和許可權其他用法 Entrust::hasRole('role-name'); Entrust::can('permission-name'); // is identical to Auth::user()->hasRole('role-name'); Auth::user()->can('permission-name'); // 匹配判斷 // match any admin permission $user->can("admin.*"); // true // match any permission about users $user->can("*_users"); // true // 判斷使用者是否有第一個陣列中得角色和第二個陣列中得許可權,第三個陣列中得validate_all 如果為 true 則為或者操作,如果為 false 則為並且操作, return_type 為整個判斷返回的型別,可以為bool型別,可以為陣列,也可以為 both ,both則是把每個判斷的結果以陣列的形式展現。 dd(auth()->user()->ability( array('admin','user'), array('create users','edit users'), ['validate_all' => true,'return_type' => 'both'] )); //下面的方法和上面的一致 dd(auth()->user()->ability( array('admin', 'user'), array('create users', 'edit users'), array('validate_all' => true,'return_type' => 'both') )); $user->ability('admin,owner', 'create-post,edit-user'); // 第三個可選引數為陣列 $options = array( 'validate_all' => true | false (Default: false), 'return_type' => boolean | array | both (Default: boolean) ); $options = array( 'validate_all' => true, 'return_type' => 'both' ); //下面的方法和上面的判斷 結果是一致的,只不過寫法不同而已。 list($validate, $allValidations) = $user->ability( array('admin', 'owner'), array('create-post', 'edit-user'), $options ); var_dump($validate); // bool(false) var_dump($allValidations); // array(4) { // ['role'] => bool(true) // ['role_2'] => bool(false) // ['create-post'] => bool(true) // ['edit-user'] => bool(false) // } // 等價寫法 Entrust::ability('admin,owner', 'create-post,edit-user'); // is identical to Auth::user()->ability('admin,owner', 'create-post,edit-user');
- 模版標籤
@role('admin') <div class="panel-body"> <p>admin</p> </div> @endrole @permission('create users') <div class="panel-body"> <p>create users</p> </div> @endpermission @ability('admin,owner', 'create-post,edit-user') <div class="panel-body"> <p>'admin,owner', 'create-post,edit-user'</p> </div> @endability
-
中介軟體
Route::group(['prefix' => 'admin', 'middleware' => ['role:admin']], function() { Route::get('/', 'AdminController@welcome'); Route::get('/manage', ['middleware' => ['permission:manage-admins'], 'uses' => 'AdminController@manageAdmins']); });
-
傳遞多個引數(分隔中介軟體名和引數名來指定,多箇中介軟體引數可以透過逗號分隔):
'middleware' => ['role:admin|root'] 'middleware' => ['permission:owner', 'permission:writer'] 'middleware' => ['ability:admin|owner,create-post|edit-user,true']
-
本作品採用《CC 協議》,轉載必須註明作者和本文連結
老郭部落格:laughing:
個人部落格地址:www.phpsix.com