Иногда трудно определить лучшую практику с Codeigniter, потому что она не требует соглашений, поэтому все, что я могу вам сказать, это то, как я нашел лучший из моего опыта ...
Я предполагаю, что ваше представление формы обслуживается через index()
, а затем вы отправляете свою форму в эту (отдельную) функцию контроллера, которая проверяет и обрабатывает данные формы и повторно отображает представление с ошибками, если возникла проблема ...
Я бы очистил это, объединив все в одну функцию ...
public function form()
{
//if this is a post request
if ($_POST)
{
//check the validation
if ($this->form_validation->run())
{
//process it
//and then redirect if you want to send to a "success" page
redirect('uri/to/success');
}
else
{
//load up $data values to re-display form
}
}
//load up any $data values needed for standard view
$this->load->view('view', $data);
// or $this->template stuff...
}
Мне всегда казалось, что это плохой путь к внутреннему вызову функций контроллера, напр. $this->index()