【问题标题】:CakePHP - basic hasAndBelongsToMany problemCakePHP - 基本的 hasAndBelongsToMany 问题
【发布时间】:2009-08-22 12:40:34
【问题描述】:

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

【问题讨论】:

    标签: cakephp


    【解决方案1】:

    是的,版本 1.2.4 存在一些问题。我也遇到过类似的问题。

    【讨论】:

      【解决方案2】:

      在您的脚手架视图中,应该有一个多选选项,以便您将标签关联到帖子以及帖子关联到标签。然后,当您查看帖子时,您会看到相关标签,并且查看标签会显示相关视图。我使用了您提供的代码并且能够产生这些结果。你没有看到同样的东西吗?

      【讨论】:

        【解决方案3】:

        是的,我可以确认我在 1.2.4.8284 中遇到了同样的问题 - 即所有 HABTM 关系都从脚手架表单中丢失。

        我恢复到 1.2.3.8166,它恢复正常,应该是这样。

        【讨论】:

          【解决方案4】:

          这是 1.2.4 版中的错误 - 已在 1.2.5 版中修复

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多