我正在为我们的cakephpcms开发一个插件,可以处理博客。当获取标签时,我需要将HABTM关系设置为unique=false,以便能够将标签添加到文章中,而不必全部重置它们。
BlogPost模型如下所示
class BlogPost extends AppModel {
var $name = 'BlogPost';
var $actsAs = array('Core.WhoDidIt', 'Containable');
var $hasMany = array('Blog.BlogPostComment');
var $hasAndBelongsToMany = array('Blog.BlogTag' => array('unique' => false), 'Blog.BlogCategory');
}
class BlogTag extends AppModel {
var $name = 'BlogTag';
var $actsAs = array('Containable');
var $hasAndBelongsToMany = array('Blog.BlogPost');
}
当我有unique=>BlogPost和BlogTag之间的HABTM关系的真实设置是
Query: SELECT `Blog`.`BlogTag`.`id`, `Blog`.`BlogTag`.`name`, `Blog`.`BlogTag`.`slug`, `Blog`.`BlogTag`.`created_by`, `Blog`.`BlogTag`.`modified_by`, `Blog`.`BlogTag`.`created`, `Blog`.`BlogTag`.`modified`, `BlogPostsBlogTag`.`blog_post_id`, `BlogPostsBlogTag`.`blog_tag_id` FROM `blog_tags` AS `Blog`.`BlogTag` JOIN `blog_posts_blog_tags` AS `BlogPostsBlogTag` ON (`BlogPostsBlogTag`.`blog_post_id` = 4 AND `BlogPostsBlogTag`.`blog_tag_id` = `Blog`.`BlogTag`.`id`)
如您所见,它正在尝试将blog\u tags表设置为“blog”。“BlogTag”。不是有效的MySQL名称。
当我删除unique=>正确的关系,所有的工作发现,我可以保存一个标签,但当添加另一个它只是删除第一个,并把新的一个在其位置。
有人有什么想法吗?是虫子还是我遗漏了什么?
院长