表单验证,自定义规则问题
问题一:自定义规则callback_function 调用失败public function index(){
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'callback_username_check');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('demo_lyl/myform');
}
else
{
$this->load->view('demo_lyl/formsuccess');
}
}
public function username_check()
{
if (1==1)
{
$this->form_validation->set_message('username_check', 'error');
return FALSE;
}
else
{
return TRUE;
}
}
回调函数无效,不会报错,请问是我哪里写错了?
问题二: 在验证规则是能否用 正则表达式
比如:$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length|max_length|xss_clean');
这里验证username不得小于5大于12 能否直接用正则 /\w/ 这样处理呢?是不是一定要在回调函数里处理?有单独的规则类似(min_length[]):如preg_match[规则]这样的吗?
欢迎各种赐教啊
第一个问题解决了,是公司的项目把CI重新定义了,继承的是MX_Controller
加一行$this->form_validation->CI =& $this;搞定问题=。=
真郁闷。
然后CI的表单验证类,在控制器里面设置set_rules,就会不在加载config文件下的设置的规则?这样设置了多条公共规则,用的时候突然有一条要加新规则就等全部重写规则?不能只修改这一条,剩下的继承config文件下设置的规则吗?
既然使用CI建议使用CI的规则来书写,否则就没有意义了
页:
[1]