我要为这个错误疯狂了。我有一个带有Debian 7的迷途虚拟机,用Puphpet生成,安装很好。
1.安装和工作
redis-server正在运行:

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

2.安装php5-redis
实际上已经安装了php5-redis:

3.设置了Laravel Redis配置。
以下是app/local/database.php中的redis配置文件:
'redis' => [
'cluster' => false,
'default' => [
'host' => '127.0.0.1',
'port' => 6379,
'database' => 0,
],
],4.对Redis的呼吁很简单:
// Get redis
$redis = Redis::connection();5.我尝试了很多事情
sudo service nginx reload
sudo service redis-server force-reload
composer dumpautoload但没什么能解决这个错误。
我仍然有:
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(第16行是我执行连接$redis = Redis::connection();的地方)
我哪里错了?
顺便说一句,我讨厌星期一>.>
发布于 2014-10-18 03:10:46
在遇到这个问题后,我遇到了这个问题,我想补充另一个答案,以防它对其他人有帮助。
在我的例子中,有一个别名冲突,因为我的php配置启用了PHP-Redis模块/扩展-- PHP模块和Laravel似乎都有一个名为Redis的冲突对象。我能够简单地通过使用整个命名空间标识符来解决这个问题:
//$r = Redis::connection()
$r = Illuminate\Support\Facades\Redis::connection();发布于 2014-09-22 17:13:24
问题不在于您的redis服务器设置--您的系统中有错误的配置或更改。
你看到的错误
Call to undefined method Redis::connection()PHP告诉您它在类connection上找不到一个名为Redis的方法。这是一个PHP错误,PHP永远不会尝试与redis服务器对话。
通常,在Laravel4.2系统中,没有名为Redis的类。相反,在app/config/app.php中设置了别名。
#File: app/config/app.php
'Redis' => 'Illuminate\Support\Facades\Redis',它将Redis转换成一个外观。这使您能够打像Redis::connection这样的电话。
你的系统出了点问题。要么是你
Redis的自定义类Redis别名为Illuminate\Support\Facades\Redis外观类以外的其他内容?Redis外观类已被修改为返回redis以外的服务标识符。redis服务恢复为其他类Redis PHP扩展和全局扩展类"wins“。要找出PHP认为Redis类在哪里,请尝试
$r = new ReflectionClass('Redis');
var_dump($r->getClassFile());要查看#4是否是问题所在,请直接调用服务
$app = app();
$app['redis']->connection();祝好运!
发布于 2015-01-08 00:34:14
这个错误是因为您已经安装并启用了php5-redis模块,所以它变成了Redis类。为了避免这个错误并使用,您必须更改app/config/app.php中的别名(或者您的环境)。
'Redis' => 'Illuminate\Support\Facades\Redis'
'RedisFacade' => 'Illuminate\Support\Facades\Redis' //whatever you like
或者将您的cache.php配置为使用Redis,并且只使用Cache类。:)
https://stackoverflow.com/questions/25975794
复制相似问题