首页 > 解决方案 > 调用未定义的方法 Illuminate\Support\Facades\Redis::connect()

问题描述

通过 Homestead 运行 Laravel 5.7。

这发生在:

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

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

'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 并且可以连接到代码之外。

我无法更改代码,因为它适用于其他人。这一定是我的虚拟机上的配置问题,但我看不出它可能是什么。如果有人有类似的问题,我将不胜感激任何建议。

标签: phplaravelredis

解决方案


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

尝试在你的删除这一行config/app.php

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

推荐阅读