我是CodeIgniter中的新手......我正在尝试对数组输入进行表单验证... 数组名称是pages []。
我写道:
$this->form_validation->set_rules('pages[]','','required');
如果我使用它:
$this->form_validation->set_message('required', 'you not selected pages.');
它不会改变其他“必需”验证输入参数吗?
那么如何才能为一次验证设置错误信息?
答案 0 :(得分:2)
它不像您所说的那样有效,您应该更仔细地阅读this section of the user guide。
我不确定我能解释得更好,但是set_message方法的第一个字段并没有引用验证的类型,而是引用回调函数的名称,这是执行自定义验证工作的函数。
您需要做的是定义您的回调函数(该指南有一个很好的示例),您可以在其中遍历数组的元素并计算已检查的内容。如果在迭代结束时计数器为0,则设置错误消息。
希望这有帮助。
答案 1 :(得分:2)
这是我的自定义Form_Validation类。如果你愿意,你可以使用它。把这个文件放在你的库目录下。那么你可以像这样使用set消息:
$this->form_validation->setError(YOUR_INPUT_NAME, THE_MESSAGE);
ex: $this->form_validation->setError('email', 'Invalid email');
-
class MY_Form_validation extends CI_Form_validation {
public function set_error($field, $pesan_error){
$this->_field_data[$field]['error'] = $pesan_error;
}
public function get_error($field){
return $this->_field_data[$field]["error"];
}
public function get_all_error(){
// return $this->_field_data[$field]["error"];
$fields = $this->_field_data;
$pesan = "";
foreach($fields as $field ) {
if($field["error"]) {
$pesan .= "<p>$field[error]</p>";
}
}
return $pesan;
}
}