4

当我使用最新的 Laravel 5.2.2 和 Entrust ("zizaco/entrust": "5.2.x-dev") 我遇到这个错误并且不知道如何解决这个问题:

Call to undefined method Zizaco\Entrust\EntrustServiceProvider::hasRole()

我在 HomeController.php 上测试了这段代码

use Entrust;

class HomeController extends Controller
{ 


    public function index()
    {
        if (Entrust::hasRole('admin')) {
            echo "string";
        }

        return view('home');
    }
}

这是我的 config/app.php 服务提供者

Zizaco\Entrust\EntrustServiceProvider::class

config/app.php 门面别名

'Entrust'   => Zizaco\Entrust\EntrustFacade::class

我也已经生成了所需的模型

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

我在这里错过了什么吗?

4

4 回答 4

11

我有同样的问题,这是我为解决问题所采取的步骤

在您的 .env 文件中更改为缓存数组

CACHE_DRIVER=array

别忘了跑

php artisan config:cache
于 2016-06-15T07:55:25.920 回答
4

看来所有步骤都是正确的,我只需要清除缓存php artisan config:cache

如果您遇到如下错误

BadMethodCallException in vendor\laravel\framework\src\Illuminate\Cache\Repository.php line 380:
This cache store does not support tagging.

您需要在 .env 中将此行更改为数组

CACHE_DRIVER=array
于 2016-03-02T05:04:10.243 回答
0

尝试这个:

打开你的 laravel 的环境文件,将 CACHE_DRIVER=file 更改为 CACHE_DRIVER=array 并保存。

现在试试你的 CLI 命令。

于 2016-05-23T08:42:33.450 回答
-1

Laravel 驱动程序不支持标记。要解决此问题,请转到您的.env文件并更改

Cache_driver=file

Cache_driver=array

并运行

php artisan config:cache
于 2017-03-18T10:25:50.470 回答