【发布时间】:2012-03-09 06:51:21
【问题描述】:
我正在尝试将验证规则从控制器移动到配置文件中。我按照here 记录的说明进行操作,但我无法让它工作。提交表单时,不会执行验证。回显validation_errors() 不会打印任何内容。
稍微挖掘了一下,表单验证库中的run()方法返回false,因为没有设置配置规则。摘录如下:
system/libraries/Form_validation.php:
// No validation rules? We're done...
if (count($this->_config_rules) == 0)
{
return FALSE;
}
任何帮助将不胜感激。这是我的代码:
应用程序/控制器/signup.php:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Signup extends CI_Controller {
public function __construct() {
parent::__construct();
}
public function index() {
if ($this->form_validation->run()) {
$this->user_model->insert(array(
'email_address' => $this->input->post('email_address'),
'password' => $this->input->post('password'),
));
redirect('/log-in');
}
$this->load->view('header');
$this->load->view('signup/index');
$this->load->view('footer');
}
}
/* End of file signup.php */
/* Location: ./application/controllers/signup.php */
application/config/form_validation.php:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
$config = array(
'signup/index' => array(
array(
'field' => 'email_address',
'label' => 'Email Address',
'rules' => 'trim|required|max_length[255]|valid_email|email_in_use'
),
array(
'field' => 'password',
'label' => 'Password',
'rules' => 'required|min_length[6]'
),
array(
'field' => 'confirm_password',
'label' => 'Confirm Password',
'rules' => 'required|matches[password]'
),
),
);
/* End of file form_validation.php */
/* Location: ./application/config/form_validation.php */
我正在使用 CI 2.1.0。
【问题讨论】:
-
我有同样的专业...这是一个错误吗?
-
似乎有人和以前一样面对同一个职业。你可以在这个link找到一些解决方案
标签: php codeigniter validation codeigniter-2