2
我需要在CakePHP中使用三一$this->Paginate
搜索查詢以下是我使用搜索與CakePHP中CONCAT領域3
$searchCondition = array(
'OR' => array(
'Quotes.quotenum LIKE' => "%" . $this->request->data['Quote']['keyword'] . "%",
'Branches.name LIKE' => '%' . $this->request->data['Quote']['keyword'] . '%',
'Contacts.fname LIKE' => '%' . $this->request->data['Quote']['keyword'] . '%',
'Contacts.lname LIKE' => '%' . $this->request->data['Quote']['keyword'] . '%',
'CONCAT(Contacts.fname, Contacts.lname) LIKE' => '%' . $this->request->data['Quote']['keyword'] . '%',
'Quotes.description LIKE' => '%' . $this->request->data['Quote']['keyword'] . '%'
)
);
$cond = array(
'conditions' => array_merge($searchConditions, $searchCondition, $limo),
'order'= > array('Quotes.quotenum desc'),
'contain' => array('Branches','Contacts')
);
$this->set('articleList', $this->paginate($this->Quotes));
正如你可以看到我合併條件陣列彼此的代碼和然後將它們發送到分頁。這在CakePHP 2.7中運行良好。但現在我得到錯誤
Column not found: 1054 Unknown column 'contacts.lname' in 'where clause'.
lname
列肯定會退出數據庫表。有什麼我做錯了嗎?如果是這樣,有人可以告訴我做連續搜索的正確方法,因爲我一直在嘗試做相當一段時間。
你沒有使用'$ cond'變量在任何地方你的代碼示例。此外,爲什麼別名在它的小寫錯誤消息中有所不同,在您的代碼片段中以大寫字母開頭? – ndm
@ndm它似乎是降低別名的蛋糕。我測試了一個類似的代碼,並得到相同的錯誤。我試過的代碼只是'$ table-> find() - > where(['CONCAT(Users.name,Users.family_name)LIKE'=>'%test%']);' – arilia
@arilia啊,我忽略了第二個'lname'引用...你需要使用查詢表達式。 – ndm