Je rencontre des problèmes avec la création de pagination avec une relation HABTM. Tout d'abord, les tables et les relations:Pagination CakePHP avec les modèles HABTM
requests (id, to_location_id, from_location_id)
locations (id, name)
items_locations (id, item_id, location_id)
items (id, name)
Ainsi, une demande a un emplacement de la demande provient de et un emplacement de la demande va -. Pour cette question, je suis seulement préoccupé par le "à" l'emplacement.
Request --belongsTo--> Location* --hasAndBelongsToMany--> Item
(* as "ToLocation")
Dans mon RequestController, je veux paginer tous les éléments dans la ToLocation d'une demande.
// RequestsController
var $paginate = array(
'Item' => array(
'limit' => 5,
'contain' => array(
"Location"
)
)
);
// RequestController::add()
$locationId = 21;
$items = $this->paginate('Item', array(
"Location.id" => $locationId
));
Et ce ne parvient pas, car il génère ce SQL:
SELECT COUNT(*) AS count FROM items Item WHERE Location.id = 21
Je ne peux pas comprendre comment faire réellement utiliser l'argument « contenir » des $paginate
...
Des idées?
Ceci est la seule façon qui a fonctionné pour moi, ayant des noms de champ non conventionnel table HABTM. –