2012-02-15 2 views
0

안녕하세요 제 문제는 제가 상점과 지불 방법 사이에 새로운 관계를 저장하려고합니다 관계가 habtm ... 상점 및 결제가 이미 있습니다. 나는 더 많은 지불 방법을 광고하고 싶다. 하지만 항상 내가 저장할 때 shop_payment 테이블에있는 오래된 지불 realtion은 오직 두 번째 저장된 값이 아닌 업데이트됩니다. 나는 고유하게 false로 설정했지만 많은 변화는 없습니다. 누구나 아이디어를 얻었습니까?저장 대신 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를 정의 모델의 모든 필드 페이지 : 컨트롤러에서

 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'])); 
}