2013-02-08 85 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