【问题标题】:Yii2 + redis class errorYii2 + redis 类错误
【发布时间】:2015-06-02 23:49:23
【问题描述】:

我在尝试使用 Redis 配置 Yii2 时出错:

无效配置 – yii\base\InvalidConfigException
“db”组件的配置必须包含“class”元素。

Yii2 并且yii2-rediscomposer 一起安装。

# ls -la project_dir/vendor/yiisoft/yii2-redis/
total 116
drwxr-xr-x  2 root root  4096 мар 26 13:59 .
drwxr-xr-x 11 root root  4096 мар 25 14:54 ..
-rw-r--r--  1 root root 18013 мар  1 14:22 ActiveQuery.php
-rw-r--r--  1 root root 11140 мар  1 14:22 ActiveRecord.php
-rw-r--r--  1 root root  2194 мар  1 14:22 CHANGELOG.md
-rw-r--r--  1 root root  6390 мар  1 14:22 Cache.php
-rw-r--r--  1 root root 22224 мар 26 13:59 Connection.php
-rw-r--r--  1 root root  1622 мар  1 14:22 LICENSE.md
-rw-r--r--  1 root root 14015 мар  1 14:22 LuaScriptBuilder.php
-rw-r--r--  1 root root  5650 мар  1 14:22 README.md
-rw-r--r--  1 root root  5170 мар  1 14:22 Session.php
-rw-r--r--  1 root root   891 мар  1 14:22 composer.json

我只是编辑:project_dir/config/db.php

 <?php
/*return [
    'class' => 'yii\db\Connection',
    'dsn' => 'mysql:host=localhost;dbname=yii2basic',
    'username' => 'root',
    'password' => '',
    'charset' => 'utf8',
];*/
    return [
    'components' => [
    'redis' => [
    'class' => 'yii\redis\Connection', tied to replace with "'class' => 'yii2-redis\redis\Connection',"
    'hostname' => 'localhost',
    'port' => 6379,
    'database' => 0,
               ],
                    ]
            ];
?>

【问题讨论】:

    标签: php yii redis yii2


    【解决方案1】:

    您应该为db 组件添加有效配置以正确初始化:

    return [
        'components' => [
            'db' => [
                'class' => 'yii\db\Connection',
    
                ...
            ];
    
            ...
        ],
    ];
    

    official docs阅读更多内容。

    【讨论】:

      【解决方案2】:

      在 config/main.php 中添加以下行

          'cache' => [
              'class' => 'yii\redis\Cache',
              'redis' => [
                  'hostname' => 'localhost',
                  'port' => 6379,
                  'database' => 0,
              ]
          ],
      

      为了使用它,你必须以下列方式使用它

      yii::$app->cache->redis
      

      以及之后的redis函数

      yii::$app->cache->redis->hset('check',email,key);
      

      【讨论】:

        【解决方案3】:
        'components' => [
            'cache' => [
                'class' => 'yii\redis\Cache',
                'redis' => [
                        'hostname' => 'localhost',
                        'port' => 6379,
                        'database' => 0,
                ]
        
            ],
        ],
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2017-10-21
          • 1970-01-01
          • 2014-10-03
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-10
          相关资源
          最近更新 更多