CakePHP - 基本hasAndBelongsToMany问题

时间:2009-08-22 12:40:34

标签: cakephp

我刚刚学习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。

4 个答案:

答案 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并恢复正常,应该如此。