[英]hasAndBelongsToMany relationship in CakePHP not saving the data
我在CakePHP中遇到問題。 我想要hasAndBelongsToMany與bs_categories
和bs_listing_types
表的關系。 (一個類別可以具有多種列表類型)。
這些是我使用的表結構。
bs_categories
-------------
id int(10)
parent_id int(10)
lft int(10)
rght int(10)
title varchar(255)
body text
meta_title varchar(255)
meta_keyword text
meta_desc text
slug varchar(255)
status int(1)
created datetime
modified datetime
bs_listing_types
-----------------
id int(11)
title varchar(255)
status int(1)
created datetime
modified datetime
bs_listing_types_categories
---------------------------
id int(11)
listing_type_id int(11)
category_id int(11)
我在模型中編寫了以下代碼:
/**
* hasAndBelongsToMany associations
*
* @var array
*/
public $hasAndBelongsToMany = array(
'ListingType' => array(
'className' => 'ListingType',
'joinTable' => 'listing_types_categories',
'foreignKey' => 'listing_type_id',
'associationForeignKey' => 'category_id',
'unique' => 'keepExisting',
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'finderQuery' => '',
)
);
在保存時,我正在獲取以下數據。
Array(
[Category] => Array
(
[listing_type_id] => Array
(
[0] => 2
[1] => 3
)
[parent_id] =>
[id] => 1
[title] => Advert
[meta_title] => Advert
[meta_keyword] => Advert
[meta_desc] => Advert
[status] => 1
))
但是問題在於它沒有將數據保存到bs_listing_types_categories
表中。 我做錯什么了嗎? 請幫忙!
HABTM永遠不會按照cakePHP慣例具有ID列,否則數據將無法保存。
bs_listing_types_categories
僅具有以下字段
listing_type_id int(11)
category_id int(11)
有關更多信息LINK
例如 ,如果帖子都涉及到在HABTM標簽,然后,檢查出posts_to_tags
沒有id字段。
CREATE TABLE `posts` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
`body` text NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `tags` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE `posts_tags` (
`post_id` int(11) NOT NULL,
`tag_id` int(11) NOT NULL,
PRIMARY KEY (`post_id`,`tag_id`)
);
您的表格結構
您的數組應該像這樣,因此在使用foreach循環應用保存之前,您應該使數組像這樣。
Array(
[Category] => Array
(
[listing_type_id] => Array
(
[0] => 2
)
[listing_type_id] => Array
(
[1] => 3
)
[parent_id] =>
[id] => 1
[title] => Advert
[meta_title] => Advert
[meta_keyword] => Advert
[meta_desc] => Advert
[status] => 1
))
並且在保存時應使用saveAssociated。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.