cakephp211 problemas de condiciones
Frecuentes
Visto 97 veces
1
¡Saludos! mis modelos no se configuran como contenedores. esta siguiente consulta no muestra el resultado correcto (quiero recuperar todos los autos disponibles entre dos fechas en todas las categorías)
$car=$this->Genre->find('all', array(
'contain' => array(
'cars'=>array(
'conditions'=>array(
'cars.startdate <=' => $qdu ,
'cars.enddate >=' => $qau
)
)
)
)
);
este es mi modelo de género:
class Genre extends AppModel {
public $actsAs = array('Containable');
public $belongsTo = array(
'houses' => array(
'className' => 'houses',
'foreignKey' => 'houses_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
public $hasMany = array(
'cars' => array(
'className' => 'cars',
'foreignKey' => 'genres_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
}
y este es el modelo de coche:
class Car extends AppModel {
public $belongsTo = array(
'Genres' => array(
'className' => 'Genres',
'foreignKey' => 'genres_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
public $hasMany = array(
'ways' => array(
'className' => 'ways',
'foreignKey' => 'cars_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
}
1 Respuestas
0
Los nombres de los modelos normalmente deben ser singulares, por lo que "Coche" en lugar de "coches".
$car=$this->Genre->find('all', array(
'contain' => array(
'Car'=>array(
'conditions'=>array(
'Car.startdate <=' => $qdu ,
'Car.enddate >=' => $qau
)
)
)
)
);
Además, asegúrese de que el modelo Genre cargue el comportamiento Containable.
class Genre extends AppModel {
$actsAs = array('Containable');
}
Las asociaciones también deben usar nombres de modelos singulares y en mayúsculas:
class Genre extends AppModel {
public $actsAs = array('Containable');
public $belongsTo = array(
'House' => array(
'className' => 'House',
'foreignKey' => 'houses_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
public $hasMany = array(
'Car' => array(
'className' => 'Car',
'foreignKey' => 'genres_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
)
);
}
Es una convención de Cake tener controladores pluralizados (CarsController, GenresController) y modelos singulares (Car, Genre). Al definir asociaciones, en esencia, está vinculando modelos y no controladores, de ahí la necesidad de nombres de clase singulares y en mayúsculas.
contestado el 04 de mayo de 12 a las 13:05
No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas cakephp-2.0 or haz tu propia pregunta.
antes, recuperé todos los datos (no deseados también). Ahora, al hacerlo, tengo un error: Advertencia (512): el modelo "Género" no está asociado con el modelo "Coche" [CORE\Cake\Model\Behavior\ContainableBehavior.php, línea 339] - John
Eso significa que no hay una asociación configurada para el modelo Género. Probablemente quieras un
hasMany
La relación como Género puede tener múltiples Autos. Consulte el manual para obtener más información: book.cakephp.org/2.0/en/models/… - menschok mensch gracias! pero configuré una relación hasmany con el modelo de género y tengo el mismo error: John
¿Podrías actualizar tu pregunta con el código del Género y modelo de Auto? - mensch
Actualicé mi respuesta con algunos consejos sobre asociaciones. - mensch