2016-10-14 10:24:21 3692次浏览 6条回答 0 悬赏 115 金钱

Uncaught Error: Call to a member function getDb() on null 如果使用common里面的数据库配置 则报错
我只能设置vendor/yiisoft/yii2/db/ActiveQuery.php 中的$db;

最佳答案

  • 衣香人影太匆匆 发布于 2016-10-18 18:22 举报

    public static function getDb()

    {
        $connection = new \yii\db\Connection([
            'dsn' => 'mysql:host=123;dbname=123',
             'username' => 'root',
             'password' => '',
        ]);
        $connection->open();
    
        return $connection;
    }
    
  • 回答于 2016-10-14 10:56 举报

    你配置有问题吧,数据库前缀考虑了没,

    1 条回复
    回复于 2016-10-14 17:02 回复

    考虑了,,,,,

  • 回答于 2016-10-14 11:12 举报

    config/db,配置有错?

    1 条回复
    回复于 2016-10-14 17:02 回复

    配置信息没有问题

  • 回答于 2016-10-14 13:23 举报

    方便的话希望能给出更多的信息

    • 使用的是基础版还是高级版
    • 数据库的配置信息是怎么做的,当然敏感信息可以用其他字符代替
    • 数据库的使用又是怎么做的
      起码我觉得你需要描述清楚这3个问题,我们才能更好的了解问题并给出解决方案吧

    否则我们从一开始就只能凭借经验来解答了,结果就是配置有问题。。。

    3 条回复
    回复于 2016-10-14 17:01 回复

    yii2 高级版 数据库配置了一个主从 当我实例化 db的时候 打印出得信息没有

    yii\db\Connection Object
    (
        [dsn] => 
        [username] => 
        [password] => 
        [attributes] => 
        [pdo] => 
    

    没有信息

    回复于 2016-10-14 22:24 回复

    我想你是不是可以考虑试试在你想要做的model中配置一下getDb这个方法

    public function getDb()
    {
          return '{{%DBNAME}}';
    }
    

    此外配置信息还是需要注意下

    'components' => [
            'db' => [
                'class' => 'yii\db\Connection',
                'dsn' => 'mysql:host=localhost;dbname=yii_blog',
                'username' => 'root',
                'password' => '123',
                'charset' => 'utf8',
    	    'tablePrefix' => 'yb_',
            ],
    ],
    
    回复于 2016-10-14 22:30 回复

    此外我觉得你可以试着使用gii这个工具来生成你的文件

    用过之后我想你会感受到它的好处

  • 回答于 2016-10-16 22:44 举报

    代码贴出来啊

  • 回答于 2016-10-18 20:15 举报

    应该是数据库的配置问题!

您需要登录后才可以回答。登录 | 立即注册
衣香人影太匆匆丶
主管

衣香人影太匆匆丶

注册时间:2016-02-22
最后登录:2017-03-28
在线时长:6小时48分
  • 粉丝4
  • 金钱605
  • 威望0
  • 积分665

热门问题