[英]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.