Wie Abfragen ich eine Tabelle mit HABTM Beziehung basiert, während zusätzliche Bedingungen in CakePHP bietet?
-
03-07-2019 - |
Frage
Wie kann ich dies in CakePHP tun:
Ich bin mit zwei Tabellen (regions
und safaris
) mit einer many-to-many-Beziehung. Die Tabellen werden durch eine andere Tabelle namens regions_safaris
verbunden (mit den Bereichen region_id
& safari_id
). Ich möchte alle safaris
Treffen einen bestimmten Kriterien wie Dauer von 5 Tagen und in einer bestimmten Region holen. Dies sollte in CakePHP eingeführt werden
Lösung
juma,
Bitte wider so schnell mehrmals veröffentlichen.
Für weitere Referenz finden Sie in der Cakebook Hat-And-gehört-zu-viele-Beziehung. Es ist genau das, was Sie beschreiben. Siehe http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM
Kurz gesagt, vorausgesetzt, Sie den Kuchen Modelle richtig eingerichtet haben (mit der HABTM Beziehung zwischen den Regionen festgelegt, Safaris und regions_safaris, überprüfen Sie den Index ‚joinTable‘ auf dem var $ hasAndBelongsToMany Array, in den Modellen), würden Sie dies tun :
class SafariModel extends AppModel
{
var $name = 'Safari';
var $hasAndBelongsToMany = array( 'Tag'=>array( ..., 'joinTable'=>'regions_safaris', ... );
function findSafaris( $duration = 5, $region = null )
{
return $this->find('all', array('conditions'=>array('Region.region_name'=>$region, 'Safari.duration'=>$duration) );
}
... // rest of class
}