簡體   English   中英

Yii框架中CDb連接錯誤如何解決

[英]How to solve error in CDb connection in Yii framework

嘗試登錄 Yii 中的主頁時出錯

這是錯誤描述

CDbCommand не удалось исполнить SQL-запрос: SQLSTATE[42000]: 語法錯誤或訪問沖突:1064 你的 SQL 語法有錯誤; 檢查與您的 MariaDB 服務器版本相對應的手冊,以獲取在第 1 行附近使用的正確語法。執行的 SQL 語句是:SELECT COUNT(*) FROM documents t LEFT JOIN docpatterns as p ON t.type = p.id哪里 p.required = 1 AND t.status = 1 AND t.user_id =

這是我的代碼

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;
    }
}

問題在於$this->id未定義,因此當您執行 sql t.user_id = ' . $this->id, t.user_id = ' . $this->id,返回t.user_id =並崩潰。 解決這個問題,它將起作用。

如果您想獲取當前登錄用戶的id ,您可以執行以下操作:

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

所以:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM