2017-03-16 104 views
1

我有一個設備表,其中包含來自不同表格的不同ID,例如,位置,運營商等CakePHP 3分頁與'包含'和'條件'不起作用

現在我只想在我的視圖中顯示其中的一些。所以有一個數組device_ids與我想要顯示的相應ID。

我試圖

$this->paginate['contain'] = ['Locations', 'Operators']; 

,這表明我所有的相應數據的所有設備。

我試圖

$this->paginate['conditions'] = ['id IN' => $device_ids]; 

這說明我的只有我想要查看的設備,但沒有相應的數據。

只要我結合這兩個在

$this->paginate[] = [ 
    'conditions' => ['id IN' => $device_ids], 
    'contain' => ['Locations', 'Operators'] 
]; 

我收到

SQLSTATE[23000]: Integrity constraint violation: 1052 Column 'id' in IN/ALL/ANY subquery is ambiguous. 

有沒有人有這種行爲的解釋? 我可以改變什麼來完成這項工作。

非常感謝

L.

回答

0

對不起,

只要我張貼的問題的答案在那裏......

我需要指定ID的更多, 所以用

$this->paginate[] = [ 
'conditions' => ['Devices.id IN' => $device_ids], 
'contain' => ['Locations', 'Operators']]; 

它工作正常。

感謝您的時間

0

您應該添加型號名稱與現場一樣ModelName.id

$this->paginate['conditions'] = ['ModelName.id IN' => $device_ids];