¿Cómo puedo consultar una tabla basada en la relación HABTM mientras proporciono condiciones adicionales en CakePHP?
-
03-07-2019 - |
Pregunta
¿Cómo puedo hacer esto en CakePHP:
Estoy usando dos tablas ( regiones
y safaris
) que tienen una relación de muchos a muchos. Las tablas están unidas por otra tabla llamada regions_safaris
(con los campos region_id
& amp; safari_id
). Quiero obtener todos los safaris
que cumplan con un criterio determinado, como duraciones de 5 días y en una región determinada. Esto debería implementarse en CakePHP
Solución
juma,
Por favor, resiste publicar varias veces tan rápido.
Para obtener más referencias, consulte la relación Cakebook Has-And-Belongs-To-Many. Es exactamente lo que estás describiendo. Consulte http://book.cakephp.org/view/83/hasAndBelongsToMany-HABTM
En resumen, asumiendo que tiene la configuración de los modelos de Cake correctamente (con la relación HABTM establecida entre las regiones, safaris y regions_safaris; verifique el índice 'joinTable' en la matriz var $ hasAndBelongsToMany, en los modelos), haría esto :
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
}