2012-07-17 64 views
0

他們,我正在尋求你的幫助。申請人申請一個地點,詳細信息保存在申請表中,並被給予默認的等待狀態。管理員接受等待接受或拒絕的申請人表格。當學生被接受時,他的細節應該自動保存到學生表中。申請人表格和學生共有26個字段,國家編號在這兩個表格中都很常見且獨一無二,但它不是任何表格中的主鍵。Cakephp:將已保存在一張桌子中的數據保存到cakephp的另一張桌子

a)在這種情況下,是否可以批准申請者並向學生張貼詳細信息?

b)我如何鏈接這兩個表?是否有可能使用不是cakephp中主鍵的唯一鍵來鏈接表?

c)如何將申請人的詳細信息轉移到學生的詳細信息中?

對於從申請人的詳細信息發佈到學生的數據我已經在我的控制器中嘗試過,但我得到致命的錯誤。我只嘗試過兩個測試領域。

if($this->request->data['submit']=='Approve') { 
    $this->ApplicantsDetail->StudentDetail->set(array(
     'reg_number' => $regnumber, 
     'code'=>$code 
    )); 
} 

審批申請的學生,我用下面的代碼

if($this->request->data['submit']=='Approve') { 
    $code=$this->request->data['ApplicantsDetail']['code']; 

    for($k=0;$k<sizeof($this->request->data['ApplicantsDetail']['id']);$k++){ 
     $id=$this->request->data['ApplicantsDetail']['id']; 
     $newcode=$this->ApplicantsDetail->ProgrammeChoice->find('list', array(
      'fields'=>array('applicants_detail_id','choice','programme_code'), 
      'conditions'=>array('ProgrammeChoice.programme_code'=>$code,'ProgrammeChoice.choice'=>1) 
     )); 
     $tau1 = array('ApplicantsDetail.statu_id' => '1'); 
    } 
} 
+0

謝謝大家,你有什麼想法我可以做到這一點?或者我可以向您發送我的代碼? – alicemap 2012-07-17 08:57:41

+0

這會導致數據冗餘;爲什麼不在你的「申請人」表中使用「批准」字段? – Ross 2012-07-17 12:07:12

回答

0

當管理員批准備案,通過ID或代碼獲得該記錄的數據,只要你喜歡 -

$applicationData  = $this->ApplicantsDetail->findById($applicationId); 

$applicationData  = $this->ApplicantsDetail->findByCode($applicationCode); 

然後創建一個數組如下 -

$studentData['StudentDetail'] = $applicationData['ApplicantsDetail']; 

然後將該記錄保存到學生表中。

$this->StudentDetail->save($studentData); 
+0

謝謝Sitansu,但申請人的一些領域沒有在學生中,所以整個申請人的記錄沒有被移動到學生,但大約26個40個領域是相同的 – alicemap 2012-07-17 13:15:08

+0

如果你想添加,你也可以取消設置這些領域還可以添加一些額外的字段。喜歡。 unset($ applicationData ['ApplicantsDetail'] ['image']); 。 。 分配給新陣列之前。 如果您想添加額外的字段,您可以在分配給新數組後添加 - $ studentData ['StudentDetail'] = $ applicationData ['ApplicantsDetail']; $ studentData ['StudentDetail'] ['new_field'] ='xyz'; – Sitansu 2012-07-18 11:59:11

+0

感謝Sitansu! – alicemap 2012-07-18 14:55:37

相關問題