0

やあ皆さん、私のコードについて助けが必要です。学生が取得した科目、マーク、成績を選択するフォームがあります。科目と成績はドロップダウン メニューで、ループになっています。私は学生に英語を含めて少なくとも 5 つの科目を入力してもらいたいです。各サブジェクトは、サブジェクト コードによって参照されます。これを行うのを手伝ってもらえますか?

私のコントローラー機能は

subject_code' => $this->data['ApplicantOlevelQualification']['subject_code'][$i],
'grade' =>  $this->data['ApplicantOlevelQualification']['grade'][$i],

私のモデルは次のとおりです

public $validate = array(
'grade' => array(
        'notempty' => array(
        'rule' => array('notempty'),
        // extra keys like on, required, etc. go here...
    ),
    'ruleName2' => array(
        'rule' => array('inList', array('A', 'B','C','D','E')),
        'message' => 'Not in range.',
    ),
),
'subject_code' => array(
        'numeric' => array(
            'rule' => array('numeric'),
            //'message' => 'Your custom message here',
            //'allowEmpty' => false,
            //'required' => false,
            //'last' => false, // Stop validation after this rule
            //'on' => 'create', // Limit validation to 'create' or 'update' operations
        ),
    ),
4

1 に答える 1

0

カスタム検証を作成する必要があります。

こちらをご覧ください: http://book.cakephp.org/1.3/view/1179/Custom-Validation-Rules

例:

<?php
class User extends AppModel {
    var $name = 'User';

    var $validate = array(
        'promotion_code' => array(
            'rule' => array('limitDuplicates', 25),
            'message' => 'This code has been used too many times.'
        )
    );

    function limitDuplicates($check, $limit){
        //$check will have value: array('promomotion_code' => 'some-value')
        //$limit will have value: 25
        $existing_promo_count = $this->find( 'count', array('conditions' => $check, 'recursive' => -1) );
        return $existing_promo_count < $limit;
    }
}
?>
于 2012-07-02T05:15:11.747 に答える