2012-07-04 54 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)));