Я занят своим первым проектом «Практика» в кодеригнете. Я использовал flexi_auth в качестве библиотеки проверки и действительно любил способ реализации валидации формы в модели, а не в контроллере, тем самым придерживаясь принципа MVC (Fat models).Codeigniter, Fat models и тощий контроллер
Я пытаюсь создать еще одну из моих форм с той же логикой, но для жизни меня не может показаться, что сообщение об ошибке установлено с помощью ошибок проверки модели с помощью контроллера на представление. Обратите внимание, что я использую помощник макета, поэтому аномальный вызов для просмотра.
Любая помощь будет оценена по достоинству. Вот мой код:
Контроллер:
//Start Information Desk Query()
public function information()
{
if ($this->input->post(‘informationForm_submit’))
{
$this->load->model(‘contact_model’);
$this->contact_model->information_post();
// information_post validation failed
}
$this->data[‘title’] = ‘Information Desk’;
$this->layout->show(‘contact/information_view’, $this->data);
}
//End Information Desk Query()
Модель:
//Start Information Request()
public function information_post()
{
$validation_rules = array(
array(‘field’ => ‘informationEmail’, ‘label’ => ‘Email’, ‘rules’ => ‘required|valid_email’),
array(‘field’ => ‘informationQuery’, ‘label’ => ‘Message’, ‘rules’ => ‘required|max_length[500]’)
);
$this->form_validation->set_rules($validation_rules);
if ($this->form_validation->run())
{
return TRUE;
}
else
{
$this->data[‘message’] = validation_errors(’<li class=“error_msg”>’, ‘</li>’);
return FALSE;
}
}
//End Information Request()
Вид:
<?php
if (! empty($message))
{
echo ‘<div class = “error_message”>
<div class =“error_header”>Please correct the following</div>
<div class = “error_image my-icons-Actions-window-close-icon”></div>
<ul class = “error_text”>’.$message.’</ul></div>’;
}
?>
* * Пожалуйста, обратите внимание, что форма проверки функциональна в этом код. Если я поставлю следующее: echo $ this-> data ['message'];
.... в модели тогда ошибки отображаются, но явно не как часть моего файла вида, а перед ним. PS. пожалуйста, успокойтесь, если это глупый вопрос, но я новичок в Codeigniter и на самом деле MVC.
Я бы не то, что, если код имеет «модели» (как во множественном числе), вы уже уничтожили модель. MVC состоит из двух основных слоев: слоя модели и уровня представления. Модель не является классом или объектом, а слоем, который содержит несколько групп класса/экземпляров. –