2013-02-08 63 views
0

我的'PatientCase'模型與我的'PatientCaseOrder'模型具有hasOne關係。CakePHP將字段保存到關聯表

我正在使用AJAX功能在我PatientCase控制器使用下面的功能更新「PatientCaseOrder」位置字段(此表只是保存在patientCase ID與整數位置沿)

public function update_position(){ 
     Configure::write('debug', 0); 
     $this->autoRender = false; 
     $this->loadModel('PatientCaseOrder'); 
     $list = $_POST['list']; 
     $errs = false; 
     if($list){ 
      foreach($list as $position){ 
       $id = $position[0]; 
       $pos = $position[1]; 
       $this->PatientCase->id = $id; 

       if(! $this->PatientCase->PatientCaseOrder->saveField('position', $pos)) 
        $errs = true; 
      } 
     } 

     echo json_encode ($errs); 
    } 

我傳遞給它一個包含PatientCaseId和位置的數組。 該代碼產生500服務器錯誤,我在哪裏出錯了,還是我採取了錯誤的方法呢?

注意:我以前曾在PatientCase模型中的位置字段,這行代碼與上面的代碼段工作

$this->PatientCase->saveField('position', $pos) 
+0

'$ PatientCaseOrder'不是一個對象,它是一個數組。試試'$ this-> PatientCase-> PatientCaseOrder-> saveField('position',$ pos)'。 – Ross 2013-02-08 12:33:53

+0

我試過了,仍然不能正常工作 - >更新了問題代碼 – user195257 2013-02-08 12:41:38

+0

,然後重新開始調試,看看問題出在哪裏。還有'$ id'被設置在哪裏? – Ross 2013-02-08 13:01:08

回答

1

你需要改變你的控制器功能更好的調試:

變化Configure::write('debug', 2);

添加$this->layout = 'ajax';

和改變:if(! $this->PatientCase->PatientCaseOrder->saveField('position', $pos)) $errs = true;

到:

pr($this->PatientCase->PatientCaseOrder->saveField('position', $pos)); die;

,然後在你的Ajax功能登錄回調

console.log(returned_data);

,並檢查錯誤。

+0

Thankyou! – user195257 2013-02-08 13:56:50