Codeigniter – отправка формы формы из разных действий контроллера

Каков наилучший способ справиться со следующей ситуацией в кодеигнитре:

Домашний контроллер имеет действие индекса и действие отправки.

Действие отправки используется для отправки формы. Я хочу загрузить страницу через индексный контроллер, хотя – в том числе после отправки формы, т. Е. С данными ошибок формы, чтобы повторно заполнить входные данные формы при ошибке и т. Д.

Каков наилучший способ сделать это – без контроля указателя с загрузкой главной страницы и представлением формы.

Если вы redirect() , вы не сможете использовать set_value() для повторного set_value() полей формы.

Самое простое, что ваш указательный контроллер обрабатывает как поведение загрузки по умолчанию, так и представление.

 function index() { if($this->input->post('foo')) { // something was POSTed $this->load->library('form_validation'); //validation rules } else { // normal view // } $this->load->view('home'); } 

В качестве альтернативы вы можете просто настроить свой index и submit контроллер и указать на то же представление, которое определяет, установлены ли validation_errors() и соответственно заполняются поля формы.

Третий вариант (хакерский): вы можете использовать flashdata, чтобы сохранять ошибки отправки и представленные значения формы для перенаправления обратно в индекс. Что-то вроде этого будет работать:

 $this->session->set_flashdata('errors', $validation_errors()); 

Просто укажите свою форму в своем предложении:

 <form method="post" action="/home/submit"> 

Затем используйте действие submit чтобы подтвердить свой ввод, прежде чем перенаправлять обратно на действие index .