CakePHP — основная проблема hasAndBelongsToMany

Я только изучаю 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');
}

тег.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;
}

В приложении я могу создать/отредактировать/удалить пост или тег, но нет возможности связать их.

edit: в моих представлениях с шаблонами нет нескольких вариантов выбора, чтобы связать теги с сообщениями и т. д. Я использую v 1.2.4.8284.


person Richard    schedule 22.08.2009    source источник


Ответы (4)


да, есть проблема с версией 1.2.4. Я тоже столкнулся с подобной проблемой.

person Adit Gupta    schedule 22.08.2009

В ваших шаблонных представлениях должен быть множественный выбор, чтобы вы могли связать теги с сообщениями и сообщения с тегами. Затем, когда вы просматриваете сообщение, вы видите связанные теги, а просмотр тега показывает связанные представления. Я использовал предоставленный вами код и смог получить эти результаты. Вы не видите того же самого?

person Jesse Kochis    schedule 22.08.2009

Да, я могу подтвердить, что у меня была такая же проблема в версии 1.2.4.8284, т. е. все отношения HABTM отсутствовали в шаблонных формах.

Я вернулся к 1.2.3.8166, и все стало нормально, как и должно быть.

person Community    schedule 07.09.2009

Это была ошибка версии 1.2.4, исправлена ​​в версии 1.2.5.

person Richard    schedule 22.08.2009