【问题标题】:Cakephp habtm relation updating instead of savingCakephp habtm 关系更新而不是保存
【发布时间】: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']));
}

【问题讨论】:

    标签: cakephp save has-and-belongs-to-many


    【解决方案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']));
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-07
      相关资源
      最近更新 更多