2012-07-17 65 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

相关问题