Codeigniter validation_errors () всегда возвращает пустой

У меня есть простая форма, добавляющая к моему db следующие правила проверки. «Форма» находится в autoload.php.

Всякий раз, когда какой-либо из правил проверки не работает, страница не показывает вывод ошибки, когда ни один не разбит, форма проходит, как и ожидалось.

вот моя функция контроллера

public function add() { $this->load->library('form_validation'); $this->load->library('layout'); // field name, error message, validation rules $this->form_validation->set_rules('type', 'Type', 'required|xss_clean'); $this->form_validation->set_rules('title_type', 'Title type', 'required|xss_clean'); $this->form_validation->set_rules('first_name', 'First name', 'trim|required|min_length[1]|max_length[150]|xss_clean'); $this->form_validation->set_rules('surname', 'Surname', 'trim|required|min_length[1]|max_length[150]|xss_clean'); $this->form_validation->set_rules('job_title', 'Job title', 'trim|min_length[5]|max_length[300]required|xss_clean'); $this->form_validation->set_rules('office_number', 'Office number', 'trim|min_length[2]|max_length[11]|xss_clean'); $this->form_validation->set_rules('telephone', 'Telephone', 'trim|numeric|xss_clean'); $this->form_validation->set_rules('email', 'Email', 'trim|valid_email|xss_clean'); $this->form_validation->set_rules('website', 'Website', 'trim|prep_url|xss_clean'); $this->form_validation->set_rules('background', 'Background', 'trim|xss_clean'); $data = array( 'title' => 'Add staff member' ); if ($this->form_validation->run() == FALSE) { //Was errors $this->session->set_flashdata('message','You missed some details, please try again.'); $this->layout->load('default', 'add_person', $data); } else { $this->people_model->add_person(); $this->layout->load('default', 'added_person', $data); } } //add 

И в моем представлении формы у меня есть

  <?php echo validation_errors('<p class="msg msg-error">') ?> 

Кто-нибудь может понять, что я сделал неправильно, я пробовал все, что мог придумать.

Параметр var_dump validation_errors () дает

 string '' (length=0) 

edit: странно, если я обмениваю эти две строки вокруг, я получаю:

  $this->load->library('form_validation'); $this->load->library('layout'); //lib code http://pastebin.com/K1rBV512 Message: Undefined property: People::$form_validation Filename: controllers/people.php Line Number: 27 

Solutions Collecting From Web of "Codeigniter validation_errors () всегда возвращает пустой"

Вам необходимо передать массив $data в вашу модель. Все входные данные должны получать POST с страницы VIEW . Вы не показываете каких-либо конкретных ошибок, поэтому вам сложно диагностировать вашу проблему.

Убедитесь, что вы POST все входы, подобные этому в вашей MODEL :

 `'first_name' => $this->input->post('first_name'),` 

На ваш view :

 <?php echo validation_errors('<p class="msg msg-error">') ?> 

По вашему view измените это на следующее:

 <p class="msg msg-error"><?php echo validation_errors(); ?></p> 

Ошибка не связана с сеансом, но я не вижу, как вы загружаете библиотеку сеансов .

Я считаю, что проблема, на ваш взгляд, не в контроллере. Кажется, проблема в том, что ваш $ _POST пуст и нечего проверять.

Это кажется без ответа, надеюсь, это поможет другим.

Если это произойдет, попробуйте var_dump на $ _POST. Если пусто, убедитесь, что у вас есть

затем внутри убедитесь, что у вас есть ваши входы с свойством «name», а не «id»,

Надеюсь, это поможет кому угодно