我刚刚学习CakePHP,我的简单应用程序链接了两个具有hasAndBelongsToMany关系的表。我期待脚手架能让我将帖子与标签相关联,但事实并非如此。
以下是代码:
SQL
CREATE TABLE `posts` (
`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`content` TEXT,
PRIMARY KEY ( `id` )
);
CREATE TABLE `tags` (
`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`name` VARCHAR( 100 ) DEFAULT NULL ,
PRIMARY KEY ( `id` )
);
CREATE TABLE `posts_tags` (
`id` INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT ,
`post_id` INT( 11 ) UNSIGNED DEFAULT NULL ,
`tag_id` INT( 11 ) UNSIGNED DEFAULT NULL ,
PRIMARY KEY ( `id` )
);
模特文件夹的内容:
post.php中
class Post extends AppModel {
var $name = 'Post';
var $hasAndBelongsToMany = array('Tag');
}
tag.php
class Tag extends AppModel {
var $name = 'Tag';
var $hasAndBelongsToMany = array('Post');
}
控制器文件夹的内容
posts_controller.php
class PostsController extends AppController {
var $name = 'Posts';
var $scaffold;
}
tags_controller.php
class TagsController extends AppController {
var $name = 'Tags';
var $scaffold;
}
在应用中,我可以创建/编辑/删除帖子或标签,但无法链接它们。
编辑:在我的脚手架视图中,没有多个选择将标签关联到帖子等。我正在使用v 1.2.4.8284。
答案 0 :(得分:0)
在您的脚手架视图中,您应该有多个选择,以便将标签与帖子和帖子关联到标签。然后,当您查看帖子时,您会看到相关标签,并且查看标签会显示相关视图。我使用了您提供的代码并能够生成这些结果。你没有看到同样的事情吗?
答案 1 :(得分:0)
这是版本1.2.4中的错误 - 已在版本1.2.5中修复
答案 2 :(得分:0)
是的,版本1.2.4存在一些问题。我也遇到了类似的问题。
答案 3 :(得分:0)
是的,我可以确认我在1.2.4.8284中遇到了同样的问题 - 即脚手架形式中缺少所有HABTM关系。
我恢复到1.2.3.8166并恢复正常,应该如此。