Я только изучаю 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;
}
В приложении я могу создавать / редактировать / удалять сообщения или теги, но нет возможности их связать.
edit: в моих скаффолдинговых представлениях нет нескольких вариантов выбора для привязки тегов к сообщениям и т. Д. Я использую v 1.2.4.8284.