调用未定义的方法Illuminate \ Support \ Facades \ Redis :: connect()

时间:2019-05-29 12:13:18

标签: php laravel redis

通过Homestead运行Laravel 5.7。

这发生在:

/vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php
"line":66
"function":"establishConnection"

我们在config / database.php中使用PHP Redis:

'redis' => [

        'client' => 'phpredis',

        'default' => [
            'host' => env('REDIS_HOST', '127.0.0.1'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => 6,
        ],

    ],

我在这里看到了其他答案,所有步骤均无效。没有正在使用的Redis集群。 PhpRedis扩展已安装在VM上,并通过php -m进行了确认。 Redis服务器运行在127.0.0.1,可以连接到代码外部。

我无法更改代码,因为它适用于其他人。这一定是我的VM上的配置问题,但我看不到它可能是什么。如果有人遇到过类似的问题,我将不胜感激。

1 个答案:

答案 0 :(得分:0)

您遇到的问题是由于类命名冲突引起的:PhpRedisConnector创建了一个新的\Redis客户端,但是您似乎在应用程序中的某个地方设置了Illuminate\Support\Facades\Redis Facade的别名。 PhpRedisConnector创建new Redis并获取外观对象。

尝试在您的config/app.php中删除此行:

'aliases' => [
    ...
    'Redis' => Illuminate\Support\Facades\Redis::class, // remove this line
    ...
]