【发布时间】:2020-09-19 07:02:18
【问题描述】:
我是 Laravel 的新手。我正在尝试在 Laravel 5 Zizaco/entrust 中使用(来自 laravel-5 分支)。一切正常 - 附加规则,分离规则...但是当我尝试检查权限时出现问题。
首先我在routes.php中尝试,但是在这个地方Entrust不知道我是谁,hasRole和routeNeedsRole不在routes.php中工作。
在中间件中 hasRole 正在工作,但 routeNeedsRole 没有。尝试用作第二个参数字符串、数组,效果相同 - abort(403) 运行。
因为hasRole 正在工作,所以这个问题对我来说看起来很奇怪。
composer dump-autoload - 用过,没解决问题
在 routes.php 中
Entrust::hasRole('superadmin');// => false
\Entrust::routeNeedsRole('admin/dashboard', ['superadmin'], abort(403, 'Forbidden'), false); // display 403 page
在中间件中
\Entrust::hasRole('superadmin'); // => true
\Entrust::routeNeedsRole('admin/dashboard', ['superadmin'], abort(403, 'Forbidden'), false); // display 403 page
我的模型User.php
use Zizaco\Entrust\Traits\EntrustUserTrait;
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {
use Authenticatable, CanResetPassword, EntrustUserTrait;
routes.php
Route::group([ 'prefix' => 'admin', 'namespace' => 'Admin', 'middleware' => ['auth', 'admin']], function (){
Route::get('dashboard', [ 'as' => 'dashboard', 'uses' => "DashBoardController@index" ]);
});
我也有角色和权限模型看起来像自述文件https://github.com/Zizaco/entrust/tree/laravel-5
//对不起我的英语。
【问题讨论】: