我的设备表包含来自不同表的不同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,
答案 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];