ここに私のコントローラコードがルールを設定することです:配列をフィールド名として使用すると、これが間違っているか、CodeIgniterフォーム検証ライブラリにバグがありますか?
// Previous address(es)
$this->form_validation->set_rules('prev_house_number[]', 'House Number', 'trim|alpha_numeric');
$this->form_validation->set_rules('prev_abode[]', 'Abode', 'trim');
$this->form_validation->set_rules('prev_house_name[]', 'House Name', 'trim');
$this->form_validation->set_rules('prev_address_line_1[]', 'Address Line 1', 'required|trim');
$this->form_validation->set_rules('prev_address_line_2[]', 'Address Line 2', 'trim');
$this->form_validation->set_rules('prev_city[]', 'Town/City', 'required|trim');
$this->form_validation->set_rules('prev_county[]', 'County', 'trim');
$this->form_validation->set_rules('prev_postcode[]', 'Postcode', 'required|max_length[9]|trim');
$this->form_validation->set_rules('prev_country[]', 'Country', 'trim');
$this->form_validation->set_rules('prev_months[]', 'Previous Months', 'trim|integer');
$this->form_validation->set_rules('prev_years[]', 'Previous Years', 'trim|integer');
ユーザーができる5つの以前のアドレスまでの入力、よう:
住所1つのフィールドの背後にあるコードがどのように見えますこの: A:
<div class="input w100 f-left c-none">
<input type="text" class="address_line_1 postcode_prev_address_1" id="prev_address_line_1[]" name="prev_address_line_1[]" value="<?php echo set_value('prev_address_line_1[]');?>"/>
<label for="prev_address_line_1[]">Address Line 1 <span class="required">*</span></label>
</div>
ここで問題がありますssuming私は5つのアドレスが入力されており、フォーム上で検証が失敗し、5つの入力エリアすべてが正しく再投入されます。 しかし、CodeIgniterの検証は、配列入力では機能しません。
ここで検証した後、直接スクリーンショットです:あなたが見ることができるように、それが正しい値でフォームを再生成しますが、それは彼らに対して検証ルールを適用していないと認識していないようだ、
コントローラ内からのそれらの存在。
どうすればよいですか?
ありがとうございます!
ジャック
これはバグです。私はそれが2.1で世話をしたと信じていますが(GitHub上で開発する)、それについて私を引用しないでください。 –
フィルを明確にしてくれてありがとう。私はGitの変更をチェックアウトします! – Jack
申し訳ありませんが痛みはありますが、私はGithubのどこにいてもこれを修正するために苦労しています。あなたは正しい方向に私を向けることができますか? – Jack