我在使用HABTM關係創建分頁時遇到了一些問題。首先,表和關係:CakePHP分頁與HABTM模型
requests (id, to_location_id, from_location_id)
locations (id, name)
items_locations (id, item_id, location_id)
items (id, name)
因此,請求具有地理位置的請求從來和位置的請求會到。對於這個問題,我只關心「到」位置。
Request --belongsTo--> Location* --hasAndBelongsToMany--> Item
(* as "ToLocation")
在我的RequestController中,我想分頁處理Request的ToLocation中的所有項目。
// RequestsController
var $paginate = array(
'Item' => array(
'limit' => 5,
'contain' => array(
"Location"
)
)
);
// RequestController::add()
$locationId = 21;
$items = $this->paginate('Item', array(
"Location.id" => $locationId
));
,這是失敗的,因爲它是產生這個SQL:
SELECT COUNT(*) AS count FROM items Item WHERE Location.id = 21
我無法弄清楚如何使實際使用的$paginate
的「遏制」的說法...
任何想法?
這是唯一爲我工作,具有HABTM表中的非約定字段名的方式。 – 2017-03-17 13:10:16