Entrust Facade @role不在Laravel 5.1上工作

时间:2015-11-11 15:19:13

标签: php laravel laravel-5 laravel-5.1

我使用laravel 5.1安装了Zizaco/entrusthttps://github.com/Zizaco/entrust),并将其添加到provideraliases数组中

'providers' => [
....
Zizaco\Entrust\EntrustServiceProvider::class,
]
'aliases' => [
....
'Entrust'   => Zizaco\Entrust\EntrustFacade::class,
]

我可以从控制器访问所有Entrust功能,例如:$user->hasRole('admin')没有任何问题但是当我在我的视图中尝试它时它不起作用

@role('admin')
....
@endrole

它只是将@role(' admin')@endrole显示为html。所以我试过

@if(\Entrust::role('admin'))
...
@endif

我得到了

Call to undefined method Zizaco\Entrust\Entrust::role()

我是否必须执行任何其他配置或更改才能使@role正常工作?或者我错过了什么?

提前致谢

2 个答案:

答案 0 :(得分:1)

我无法让@roles('admin')工作,但这有效

@if(Entrust::hasRole('admin'))
....
@endif

答案 1 :(得分:0)

适用于Laravel 5.1.31 LTS

  1. 因此,只需使用以下文件替换Vendors / Zizaco / entrust / src / Entrust / EntrustServiceProvider.php中的文件:https://github.com/Zizaco/entrust/blob/master/src/Entrust/EntrustServiceProvider.php
  2. 之后你可以做php工匠视图:清除
  3. 然后你可以看到错误调用未定义的方法Zizaco \ Entrust \ Entrust :: ability()
  4. 容易解决的Entrust :: ability错误你可以用https://raw.githubusercontent.com/Zizaco/entrust/master/src/Entrust/Entrust.php替换文件供应商/ Zizaco / entrust / src / Entrust / Entrust.php