Je travaille sur un plugin pour notre CMS CakePHP qui gérera les blogs. Lorsque j'arrivais aux balises, j'avais besoin de définir la relation HABTM sur unique = false pour pouvoir ajouter des balises à un post sans avoir à les réinitialiser toutes.Utilisation des relations HABTM dans les plugins cakephp avec un ensemble unique à false
Le modèle BlogPost ressemble à ceci
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');
}
Le modèle BlogTag ressemble à ceci
class BlogTag extends AppModel {
var $name = 'BlogTag';
var $actsAs = array('Containable');
var $hasAndBelongsToMany = array('Blog.BlogPost');
}
L'erreur SQL que je reçois quand j'ai le cadre unique => true dans la relation HABTM entre le BlogPost et BlogTag est
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`)
Comme vous pouvez le voir tente de régler la blog_tags table à 'Blog'. 'BlogTag. ce qui n'est pas un nom MySQL valide. Lorsque je supprime l'unique => true de la relation, tout fonctionne et je peux enregistrer une balise mais en ajoutant une autre, elle efface simplement la première et la remplace par la nouvelle.
Quelqu'un a-t-il des idées? Est-ce un bug ou est-ce que je manque quelque chose?
Cheers, Dean