cakephp用连接表烘烤2个表

时间:2010-11-26 03:12:32

标签: join cakephp-1.3

我有两张桌子。第一个表是一个名为categories的类别表,第二个表是一个名为documents的文档表。我正在尝试创建一个连接表,允许将多个类别应用于多个文档,并使用CakePHP(我是一个菜鸟)在几秒钟内烘焙它。

我在数据库中使用了这样的mysql:

CREATE TABLE `categories` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `cat_name` varchar(100) default NULL,
  PRIMARY KEY  (`id`)
) TYPE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `documents` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `title` varchar(50) default NULL,
  `size` varchar(10) default NULL,
  `file` varchar(50) default NULL,
  `date` date default NULL,
  `created` datetime default NULL,
  `modified` datetime default NULL,
  `status` tinyint(1) NOT NULL default '0',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `categories_documents` (
  `category_id` int(10) unsigned NOT NULL default '0',
  `document_id` int(10) unsigned NOT NULL default '0',
  PRIMARY KEY  (`category_id`,`document_id`)
) TYPE=MyISAM DEFAULT CHARSET=utf8;

...对于表格而言,我从我在文档中看到的那些印象中得到的印象是它会自动烘烤。但是我收到了很多未知的列错误。我想知道我是否搞砸了命名惯例,如果有人在我花太长时间挖掘太深之前就能把我弄好吗?

2 个答案:

答案 0 :(得分:1)

categories_documents需要一个“id”字段,该字段需要是主键。那应该解决它。有关更多信息,请阅读HABTM文档。

答案 1 :(得分:1)

如果我理解正确,我认为此链接可能有助于向您解释事情:http://book.cakephp.org/view/872/Joining-tables

我的经验是手动编写所有型号代码,从未使用过烘烤。