【问题标题】:Validating single form field with CodeIgniter使用 CodeIgniter 验证单个表单字段
【发布时间】:2011-01-29 14:38:43
【问题描述】:
是否有一种快速的方法可以使用 CodeIgniter 验证单个表单字段,以查看该字段是否匹配一组规则?有 $this->form_validation->run();,但它会为整个表单返回 TRUE 或 FALSE,这不是我想要的。例如,如果我只想检查电子邮件是否有效,检查整个表单不会得到我想要的结果。
我查看了文档,但找不到像 $this->form_validation->run(); 这样的东西接受一个参数,如果有效则返回 TRUE 或 FALSE。
【问题讨论】:
标签:
php
codeigniter
validation
【解决方案1】:
form_validation 类支持组,因此您可以将组定义为电子邮件并像这样运行它$this->form_validation->run('email');
【解决方案2】:
我被这个问题困住了,我用form_error('field_name')解决了,这里是解释:
1- 首先,您需要加载表单助手:
$this->load->helper('form');
2- 你必须运行表单验证:
$this->form_validation->run();
3- $this->form_validation->run(); 会将错误消息(如果存在)设置为辅助函数 form_error('field_name');,您可以在此处检查它是 false 还是返回值。
例子:
$this->load->library('form_validation');
$this->load->helper('form');
$this->form_validation->set_rules('field_one', 'First Field', 'numeric|required');
$this->form_validation->set_rules('field_two', 'Second Field', 'required|min_length[5]|max_length[255]');
$this->form_validation->run();
$check['field_one'] = (form_error('field_one') ? form_error('field_one') : "Field one validated.. Success case");
$check['field_two'] = (form_error('field_two') ? form_error('field_two') : "Field two validated.. Success case");