Bonsoir,
Je dois faire une liaison assez étrange de 2 tables qui ne sont pas liées normalement (ou c'était pas prévue en tout cas)
table 1 : id, abc_id, def_id, title, ....
table 2 : id, abc_id, def_id, title, ...
Ces 2 tables n'ont pas de lien direct mais j'ai quand même besoin de les lier via leurs colonnes communes : abc_id et def_id
FROM table_1 t1 JOIN table_2 t2 ON t1.abc_id=t2.abc_id AND t1.def_id=t2.def_id
Sauf que j'ai l'impression qu'il n'est pas possible de le faire via le Behavior "Contain" et les liaison "$hasMany" par exemple.
Je dois malheureusement faire une pagination sur table_1 mais avec des conditions dans table_2 et malheureusement les 2 colonnes communes sont le seul point de liaison actuellement.
Une idée ?
Merci
Bon en me creusant la citrouille et en changeant d'idée j'ai trouvé une solution dans le controlleur via 'joins' => array() ....
Ça fonctionne pour la pagination mais ce n'est pas vraiment une liaison par "Containable". Si quelqu'un à une idée pour cette solution, au moins pour faire avancer le schmilblick, même si ma solution pour la pagination me suffira pour ce projet :)
L'ORM Prévois les cas générique là c'est effectivement un cas un petit peu spécial malheureusement :( le join me semble être la meilleur solution
Si tu a un abc_id c'est peut-être que tu as une table abcs ?
Si oui, ça peut être pratique de dire que tes models de la table 1 et de la table 2 belongs to les objets de la table abcs.
et ensuite quand tu récupère la liste des objets de la table abcs, tu aura les objets correspondants des deux tables.
Enfin je pense que ça devrait marcher.
via les joins ça fonctionne très bien, mais on ne peut pas faire cela en utilisant le actAs directement. J'ai dû le faire dans le controller.