Cakephp 3分页'包含'和'条件'不工作

时间:2017-03-16 11:15:47

标签: cakephp-3.0

我的设备表包含来自不同表的不同ID,例如位置,运营商等。

现在我只想在我的视图中显示其中一些。所以有一个数组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,

2 个答案:

答案 0 :(得分:0)

抱歉,

我一发布问题答案就在那里......

我需要更多地指定id, 所以

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

它工作正常。

感谢您的时间

答案 1 :(得分:0)

您应该使用ModelName.id

等字段添加模型名称
$this->paginate['conditions'] = ['ModelName.id IN' => $device_ids];