【发布时间】:2015-04-23 11:37:49
【问题描述】:
我有 People belongsToMany 电话。我可以像这样在一个 save() 中保存一个人的手机吗?
在 PeopleTable 中:
$this->belongsToMany('Phones', [
'foreignKey' => 'person_id',
'targetForeignKey' => 'phone_id',
'joinTable' => 'people_phones'
]);
在add.ctp中:
$this->Form->create($person);
$this->Form->input('person_name');
$this->Form->input('phones.0.phone_number');
在 PeopleController 中:
$person = $this->People->patchEntity($person, $this->request->data, ['associated' => ['Phones']]);
$this->People->save($person, ['associated' => ['Phones']])
但只有人得救,没有电话。没有错误信息。还能这样保存吗?
我有 CakePHP 3.0.2(今天更新)
Mabye 我应该补充一点,我是一个初学者,以前从未在 OOP 中编写过代码,而且我在没有任何相关答案的情况下折磨了谷歌两天。简单地说“是的,它应该这样工作,你肯定有一些错误”或“不,你必须先保存手机才能获得它的 ID”就足够了:) 谢谢
【问题讨论】:
-
对我来说看起来不错...您的
Person实体类是什么样的,特别是它的$_accessible属性?您还可以在修补后添加$person(debug($person);) 的调试转储并显示结果吗? -
@ndm 你是对的!太感谢了!我在 $_accessible 中没有“电话”。我会在答案中写出Person实体的结果形式
标签: has-and-belongs-to-many cakephp-3.0