J'essaie de trouver des articles dans une catégorie associée à une catégorie. En ce moment, j'ai ceci:Recherche d'enregistrements via des conditions dans HABTM
$this->set('posts', $this->Category->Post->find('all', array('conditions' => array('Category.uri' => $uri))));
Mais cela ne semble pas fonctionner. Une erreur est à l'affiche:
Warning (512): SQL Error: 1054: Unknown column 'Category.uri' in 'where clause' [CORE/cake/libs/model/datasources/dbo_source.php, line 684]
..<snipped>...
Query: SELECT `Post`.`id`, `Post`.`title`, `Post`.`uri`, `Post`.`body`, `Post`.`created`, `Post`.`modified` FROM `posts` AS `Post` WHERE `Category`.`uri` = 'holidays'.
J'ai lu que lorsque vous avez HABTM entre les modèles, vous devriez être en mesure de le récupérer comme si. Cependant, le SQL indiqué ne joint pas la table de catégories.
// Category Model
class Category extends AppModel {
var $name = 'Category';
var $hasAndBelongsToMany = array(
'Post' => array(
'className' => 'Post'
)
);
}
// Post Model
class Post extends AppModel {
var $name = 'Post';
var $hasAndBelongsToMany = array(
'Category' => array(
'className' => 'Category'
)
);
}
Belle informations sur les entrailles de la CakePHP ORM, mais ne peut pas voir comment cela aide. –
Cela aide en expliquant pourquoi vous ne pouvez pas contraindre une requête pour Posts par une propriété de Catégories - parce que, sous le capot, Cake n'effectue jamais un 'JOIN' sur les tables 'categories' et' posts'. C'était une tentative d '«enseigner la pêche» plutôt que de «donner un poisson». :-) –
Eh bien, je l'ai eu après avoir lu un article de teknoid sur HABTM. Merci. –