Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

CakePHP find list com condições de modelo relacionadas


O problema com o resultado desejado é que o Cake não retornará uma matriz de resultados despojada se você usar condições em seus modelos relacionados.

Isso acontece porque o Cake só usará essas condições em seu modelo relacionado e retornará os resultados com condições verdadeiras em seus modelos relacionados.

Se pretender devolver produtos apenas com uma Categoria específica, deverá consultar através do Modelo de Categoria, uma vez que lhe dá a possibilidade de utilizar as condições nos seus Produtos. Isso pode ser algo assim:
$this->Category->find('all', array('conditions' => array('Category.id' => 2));

Isso lhe devolverá apenas a Categoria desejada e seus Produtos associados. No entanto, isso não é muito satisfatório se você quiser uma lista, pois teria que fazer a conversão manualmente.

Eu prefiro dar uma olhada no Plugin vinculável que deve fornecer exatamente a funcionalidade desejada, pois estende o Cake usando junções como você fez em sua consulta. Isso torna possível obter resultados com condições em seus modelos relacionados.