Мне нужно расширить библиотеку проверки формы, чтобы метод возвращал массив ошибок.
Я создал новую библиотеку с методом get_error_array в папке библиотеки:
class My_Form_validation extends CI_Form_validation { public function __construct(){ parent::__construct(); } public function get_error_array(){ return $this->_error_array; } }
В файле конфигурации автозагрузки у меня есть:
$autoload['libraries'] = array('form_validation', 'my_form_validation');
Но когда я вызываю $this->my_form_validation->get_error_array()
в контроллере после проверки submit, метод возвращает пустой массив.
Примечание: проверка была FALSE.
Есть идеи ?
Обновление # 1
Согласно документации, я обновил свой код, но результат тот же:
class MY_Form_validation extends CI_Form_validation { public function __construct(){ parent::__construct(); } public function get_error_array(){ return $this->_error_array; } }
Я отключил автозагрузку и вручную загрузил библиотеку с контроллера:
$this->load->library('form_validation'); /* Validation */ if($this->form_validation->run('join_request') === false){ $e = $this->form_validation->get_error_array(); var_dump($e); }
http://www.codeigniter.com/user_guide/general/creating_libraries.html
ОБНОВЛЕНИЕ # 2
Я произнес эхо на конструкторе и работаю. В get_error_array
введите var_dump:
# echo extending CI_Form_validation ... object(MY_Form_validation)[17] protected 'CI' => & ... protected '_field_data' => array (size=0) empty protected '_config_rules' => array (size=0) empty protected '_error_array' => array (size=0) empty protected '_error_messages' => array (size=0) empty protected '_error_prefix' => string '<p>' (length=3) protected '_error_suffix' => string '</p>' (length=4) protected 'error_string' => string '' (length=0) protected '_safe_form_data' => boolean false public 'validation_data' => array (size=0) empty
Это мой файл проверки (config / form_validation.php):
$config = array( 'radio_report' => array( array( 'field' => 'id', 'label' => 'id', 'rules' => 'trim|required|is_natural_no_zero' ) ), 'join_request' => array( array( 'field' => 'owner', 'label' => 'owner', 'rules' => 'trim|required|min_length[3]|max_length[100]|alpha' ), array( 'field' => 'lang', 'label' => 'lang', 'rules' => 'trim|required|exact_length[2]|alpha' ), array( 'field' => 'email', 'label' => 'email', 'rules' => 'trim|required|valid_email|max_length[60]' ), array( 'field' => 'website', 'label' => 'website', 'rules' => 'trim|required|valid_url|max_length[255]' ), array( 'field' => 'stream', 'label' => 'stream', 'rules' => 'trim|required|valid_url|max_length[255]' ), array( 'field' => 'protocol', 'label' => 'protocol', 'rules' => 'trim|required|min_length[3]|max_length[30]' ), array( 'field' => 'codec', 'label' => 'codec', 'rules' => 'trim|required|min_length[3]|max_length[10]' ) ) );