我在我的项目中使用Zizaco Confide和Entrust。专注于Entrust,除路由过滤器外,它的工作方式非常完美。
例如,此代码可以正常工作:
$user = User::find(2);
$result = $user->hasRole('Admin');
var_dump($result);
// Returns false / true
但在我的filters.php中设置
Entrust::routeNeedsRole( 'admin', 'Admin', Redirect::to('/home') );
我收到错误:
Call to undefined method Illuminate\Auth\GenericUser::hasRole()
在Entrust.php中:40(返回$ user-> hasRole($ permission);)
我确实使用PHP 5.4和“使用HasRole;” (我的用户模型中的(HasRole特征)。
尝试调试错误,我注意到在Entrust.php文件的第36行,$ this-> user()方法返回一个GenericUser实例,该实例不能有hasRole()方法。我想它应该返回一个用户模型..
提前致谢!