我正在尝试使用具有特定标记或标记的帖子使用分页(例如,如果用户选择了两个标记,则会返回包含任一标记的帖子)。HABTM Find with CakePHP 2.0
我有我的帖子表中定义的关系
public $hasAndBelongsToMany = array('Tags' => array(
'className' => 'Tags',
'joinTable' => 'posts_tags',
'foreignKey' => 'post_id',
'associationForeignKey' => 'tag_id',
'unique' => 'keepExisting'));
如何使用搜索来检索与给定的标签行(名称或ID,将被罚款)
尝试:
// other pagination settings goes here
$this->paginate['conditions']['Tags.id'] = 13;
给我一个关系不存在的错误。
看着调试信息,看起来表格没有加入Posts_Tags和Tags表格,但是当我调试数据到视图时,Posts对象包含标签数据。
我可以找到的大部分文档似乎都围绕着早期版本的CakePHP,希望有任何帮助。
检查外键名到您的相关表中。 –
该表的模式如下: CREATE TABLE'posts_tags'( 'id' int(10)unsigned NOT NULL AUTO_INCREMENT, 'post_id' int(10)unsigned NOT NULL, 'tag_id' int(10)无符号NOT NULL, PRIMARY KEY('id'), KEY'post_tags_post_id_fk'('post_id'), KEY'post_tags_tag_id_fk'('tag_id'), 约束'post_tags_post_id_fk'外键('post_id')参考'职位('''')在DELETE CASCADE ON UPDATE CASCADE上执行, CONSTRAINT'post_tags_tag_id_fk' FOREIGN KEY('tag_id')REFERENCES'tags'('id')ON DELETE CASCADE ON UPDATE CASCADE ); – user1627061