gre*_*ena 10 redis laravel laravel-4
我对这个错误感到疯狂.我有一个带有Debian 7的流浪汉VM,用Puphpet生成,安装很好.
redis-server 在跑 :

我可以使用服务器127.0.0.1:6379:

php5-redis 实际安装:

这是我的redis配置文件app/local/database.php:
'redis' => [
'cluster' => false,
'default' => [
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
],
],
Run Code Online (Sandbox Code Playgroud)
// Get redis
$redis = Redis::connection();
Run Code Online (Sandbox Code Playgroud)
sudo service nginx reload
sudo service redis-server force-reload
composer dumpautoload
Run Code Online (Sandbox Code Playgroud)
但没有解决错误.
我还在:
ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Call to undefined method Redis::connection()' in /var/www/fd/app/menus/admin.menu.php:16
Run Code Online (Sandbox Code Playgroud)
(第16行是我连接的地方$redis = Redis::connection();)
我哪里错了?
顺便说一句,我讨厌星期一>.>
Nei*_*man 18
我在遇到这个问题后遇到了这个问题,并希望添加另一个答案,以防它帮助其他人.
在我的情况下,存在别名冲突,因为我的php配置启用了PHP-Redis模块/扩展 - PHP模块和Laravel似乎都有一个名为Redis的冲突对象.我只需使用整个命名空间标识符即可解决此问题:
//$r = Redis::connection()
$r = Illuminate\Support\Facades\Redis::connection();
Run Code Online (Sandbox Code Playgroud)
问题不在于您的redis服务器设置 - 您的系统中存在错误配置或更改的内容.
你看到的错误
Call to undefined method Redis::connection()
Run Code Online (Sandbox Code Playgroud)
PHP告诉你它无法找到connection类上命名的方法Redis.这是一个PHP错误,PHP永远不会试图与redis服务器通信.
通常,在Laravel 4.2系统中,没有名为的类Redis.而是设置别名app/config/app.php
#File: app/config/app.php
'Redis' => 'Illuminate\Support\Facades\Redis',
Run Code Online (Sandbox Code Playgroud)
变成Redis了立面.这使你可以拨打电话Redis::connection.
所以,你的系统出了问题.不管你
Redis在设置别名之前,有一个名为somewhere 的自定义类
曾Redis化名为比其他一些Illuminate\Support\Facades\Redis门面类
您Redis已对外观类进行了修改,以返回除以外的服务标识符redis
你redis像其他一些班级一样反弹这项服务
根据下面的注释,您已Redis安装PHP扩展并且全局扩展类"wins"
要找出PHP认为Redis课程的位置,请尝试
$r = new ReflectionClass('Redis');
var_dump($r->getClassFile());
Run Code Online (Sandbox Code Playgroud)
要查看#4问题是否存在,请尝试直接调用该服务
$app = app();
$app['redis']->connection();
Run Code Online (Sandbox Code Playgroud)
祝好运!
| 归档时间: |
|
| 查看次数: |
7959 次 |
| 最近记录: |