Cakephp:将已保存在一个表中的数据保存到cakephp中的另一个表中

时间:2012-07-17 07:49:13

标签: cakephp cakephp-2.1 cakephp-appmodel

嗨伙计们,我正在寻求你的帮助。申请人申请地点,详细信息保存在申请人表格中,并提供等待的默认状态。管理员接受等待接受或拒绝的申请人表格。当学生被录取时,他的详细信息应自动保存到学生表中。申请人表和学生共有26个字段,国家ID在两个表中都是通用且唯一的,但它们不是两个表中的主键。

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

1 个答案:

答案 0 :(得分:0)

当管理员批准记录时,按ID或代码获取该记录的数据 -

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

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

然后按如下方式创建一个数组 -

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

然后将记录保存在学生表中。

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