Cakephp habtm 关系更新而不是保存
Posted
技术标签:
【中文标题】Cakephp habtm 关系更新而不是保存【英文标题】:Cakephp habtm relation updating instead of saving 【发布时间】:2012-02-15 14:17:26 【问题描述】:您好,我的问题是我尝试保存商店和付款方式之间的新关系 关系是habtm ...商店和付款已经存在。我想添加更多付款方式。 但总是当我保存时,shop_payment 表中的旧付款属性只会更新,而不是第二个保存.... 我读了很多我设置为 false 的内容,但没有任何改变。 有人有想法吗?
型号
class Payment extends AppModel
var $hasAndBelongsToMany = array(
'Mainshop'=>array('className'=>'Mainshop', 'unique'=>'false')
);
查看
echo $this->Form->create('Mainshop');
echo $this->Form->input('name',array('default'=>$mainshop['Mainshop']['name']));
echo $this->Form->input('Payment.id', array(
'type' => 'select',
'options' => array($payments),
));
echo $this->Form->input('id', array('type'=>'hidden','value'=>$mainshop['Mainshop'] ['id']));
echo $this->Form->end('Edit Shop');?>
控制器
if (!empty($this->data))
$this->Mainshop->save($this->data);
$this->redirect(array('action' => 'edit',$this->data['Mainshop']['id']));
【问题讨论】:
【参考方案1】:我的建议定义了与模型中所有字段的关系:
var $hasAndBelongsToMany = array(
'Mainshop'=>array(
'className'=>'Mainshop',
'unique'=>'false',
'joinTable' => 'shop_payments',
'foreignKey' => 'payments_id',
'associationForeignKey' => 'shop_id'
)
);
在控制器中添加create():
if (!empty($this->data))
$this->Mainshop->create();
$this->Mainshop->save($this->data);
$this->redirect(array('action' => 'edit',$this->data['Mainshop']['id']));
【讨论】:
以上是关于Cakephp habtm 关系更新而不是保存的主要内容,如果未能解决你的问题,请参考以下文章
cakephp 在不使用视图的情况下保存 HABTM 关系的数据