У меня возникли проблемы с созданием разбиения на страницы с отношением HABTM. Во-первых, таблицы и отношения:Pagination 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, я хочу постраничной все товары в 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 таблице. –