2012-02-15 79 views
0

你好,我的問題是我試圖保存一個店鋪和付款方式之間的新關係 關係是habtm ...店鋪和支付已經存在。我想廣告更多付款方式。 但總是當我保存,shop_payment表中的舊付款realtion只更新,不是第二個保存.... 我讀了很多我設置爲虛假的唯一但沒有改變。 任何人都有想法?Cakephp habtm關係更新而不是保存

型號

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

我的建議定義relationshi p與在模型中的所有字段:

 var $hasAndBelongsToMany = array(
      'Mainshop'=>array(
       'className'=>'Mainshop', 
       'unique'=>'false', 
       'joinTable' => 'shop_payments', 
       'foreignKey' => 'payments_id', 
       'associationForeignKey' => 'shop_id' 
       ) 
     ); 

在控制器添加創建():

if (!empty($this->data)){ 
    $this->Mainshop->create(); 
    $this->Mainshop->save($this->data); 
    $this->redirect(array('action' => 'edit',$this->data['Mainshop']['id'])); 
}