我正在尝试3天让它工作,已经应用了我在堆栈/论坛/谷歌上看到的所有内容。 订阅者habtm subrcriberlist和订阅者列表可以属于许多订阅者。
/* Subscriber model*/
public $hasAndBelongsToMany =
array(
'Subscriberslists' => array(
'className' => 'Subscriberslist',
'joinTable' => 'subscribers_subscriberslists',
'foreignKey' => 'subscriber_id',
'associationForeignKey' => 'subscriberslist_id',
'unique' => true
)
);
/* Subscriberslist model*/
public $hasAndBelongsToMany =
array(
'Subscribers' => array(
'className' => 'Subscriber',
'joinTable' => 'subscribers_subscriberslists',
'foreignKey' => 'subscriberslist_id',
'associationForeignKey' => 'subscriber_id',
'unique' => true
)
);
数据的格式如我所看到的所有帖子中所示:
array(
'Subscriberslist' => '1',
'Subscriber' => array(
'Subscriber' => array(
(int) 0 => '1',
(int) 1 => '2',
(int) 2 => '3'
)
)
然后我无法将数据保存在我的连接表中。蛋糕只保存新的订阅者。这是我的控制器:
if (!$this->Subscriber->saveAll($this->request->data){ //error}else{//no error}
你可以告诉我我做错了什么吗?感谢
答案 0 :(得分:0)
我想说如果您尝试插入订阅者,saveAll
方法需要以下内容:
array(
'Subscriber' => array(/* Single subscriber fields here */),
'Subscriberslist' => array(
/* List subscribers here */
)
)
首先尝试使用saveAssociated
方法,因为期望您尝试保存的模型的单个实例,但会保留相关数据。如果您需要同时保存多个订阅者,请更改一个档位并恢复为saveAll
:
array(
array(
'Subscriber' => array(/* Single subscriber fields here */),
'Subscriberslist' => array(
/* List subscribers here */
)
),
array(
'Subscriber' => array(/* Single subscriber fields here */),
'Subscriberslist' => array(
/* List subscribers here */
)
)
)
我希望这有一些帮助!