2012-07-04 50 views
1

我有一个表单,学生可以使用下拉列表输入主题。下拉列表从主表中获取主题。我想验证这个下拉菜单,因此只有学生选择一个主题。科目正在循环。我怎样才能做到这一点?Cakephp:验证数组中的元素

我控制器

for ($i = 1; $i < sizeof($this->data['ApplicantOlevelQualification']['olevel_subject_code']); $i++) { 

       if ($this->data['ApplicantOlevelQualification']['olevel_subject_code'][$i] != "") { 
        $this->ApplicantOlevelQualification->create(); 
        $this->ApplicantOlevelQualification->id = null; 
        $this->ApplicantOlevelQualification->set(array(
          'applicants_detail_id' => $app_id, 
          'olevel_subject_code' => $this->data['ApplicantOlevelQualification']['olevel_subject_code'][$i], 
          'grade' => $this->data['ApplicantOlevelQualification']['grade'][$i], 
          'mark' => $this->data['ApplicantOlevelQualification']['mark'][$i], 
          'centre_number'=> $centre_number, 
          'candidate_number'=> $candidate_number, 
          'exam_body_code'=> $exam_body_code, 
          'year_written'=> $year_written, 

         ) 
        ); 

我add.ctp

echo "<tr><td>" . $this->Form->label('Subject: '); 
     echo "</td><td>"; 
     echo $this->Form->select("ApplicantOlevelQualification.olevel_subject_code.$s",$mySubjects); 
     echo "</td><td>"; 

型号

'olevel_subject_code' => array(
     'numeric' => array(
      'rule' => array('valids'), 
         ), 
    ), 
+0

您应该使$ mySubjects唯一的下拉主题。你可以显示$ mySubjects的代码,它来自哪里? –

+0

谢谢你回复Moyed。 Add.ctp $ mySubjects = $ subjects; ('list',array('fields'=> array('code','name')));我们可以通过下面的例子来说明这个问题。 – alicemap

回答

0

这可以通过下拉列表中添加GROUP BY是唯一

$subjects = $this->ApplicantOlevelQualification->OlevelSubject->find('list',array('fields'=>‌​array('code','name'),'group'=>array(code)));