最初のセットの検証が失敗すると、2 番目の検証セットが実行されないように、Codeigniter プロジェクトで一連のフォーム検証ルールを作成しようとしています。
CIマニュアルでこれを見つけました:
$config = array(
'signup' => array(
array(
'field' => 'username',
'label' => 'Username',
'rules' => 'required'
),
array(
'field' => 'password',
'label' => 'Password',
'rules' => 'required'
),
array(
'field' => 'passconf',
'label' => 'PasswordConfirmation',
'rules' => 'required'
),
array(
'field' => 'email',
'label' => 'Email',
'rules' => 'required'
)
),
'email' => array(
array(
'field' => 'emailaddress',
'label' => 'EmailAddress',
'rules' => 'required|valid_email'
),
array(
'field' => 'name',
'label' => 'Name',
'rules' => 'required|alpha'
),
array(
'field' => 'title',
'label' => 'Title',
'rules' => 'required'
),
array(
'field' => 'message',
'label' => 'MessageBody',
'rules' => 'required'
)
)
);
$this->form_validation->set_rules($config);
各セットの検証を個別に実行できるようになったことはわかっています (この場合、$this->form_validation->run('signup') および $this->form_validation->run('email'))。
問題は、 $config 配列を使用すると、フォームの投稿が失敗している間、エラーがフォーム検証クラスに追加されない (したがって表示されない) ことです。一連のルールを使用せずに $this->form_validation->set_rules() メソッドのみを使用すると、エラーが追加されて表示されました。
一連のルールを使用しているときに無効なフォーム データを入力しても、エラー メッセージが追加されないのはなぜですか?