如何解决Yii框架中CDb连接错误

kmbjn2e3  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(242)

在Yii中登录主页时出现错误

  • 这是错误描述 *

CDbCommand快速访问SQL-访问:数据库状态[42000]:语法错误或访问冲突:1064 1064您的SQL语法有错误;请查阅与您的MariaDB服务器版本对应的手册,了解在第1行“”附近使用的正确语法。执行的SQL语句为:SELECT COUNT(*)FROM documentst左联接文档模式为p ON t.类型= p.id WHERE p.要求= 1 AND t.状态= 1 AND t.用户标识=

  • 这是我的准则 *
public function getDocsStatusNew() {
    // К новому модулю "документы"
    $reqDocPats = count(DocPatterns::model()>findAllByAttributes(['required' => 1]));

    $reqDocs = new CActiveDataProvider(Documents::model(), [
        'criteria' => [
            'join' => 'LEFT JOIN docpaterns as p ON t.type = p.id',
            'condition' => 'p.required = 1 AND t.status = 1 AND t.user_id = ' . $this->id,
        ],
    ]);

    if ($reqDocPats == count($reqDocs->data)) {
        return true;
    } else {
        return false;
    }
}
vohkndzv

vohkndzv1#

问题是$this->id是未定义的,所以当您执行sql时,t.user_id = ' . $this->id,返回t.user_id =并崩溃。修复这个问题,它将工作。
如果您想获取当前登录用户的id,可以执行以下操作:

Yii::$app->user->identity->id

因此:

' AND t.user_id = ' . Yii::$app->user->identity->id,

相关问题