2014-01-15 3 views
0

У меня есть 3 разных представления, которые должны получить доступ к одной и той же функции от одного и того же контроллера для проверки их форм. В моей функции проверки, если проверка не выполняется на разных этапах, она отправляет сообщение в представление, указанное в функции. Проблема в том, что у меня должно быть три разных функции, которые делают одно и то же, только с разными возвращаемыми представлениями. Есть ли способ в кодеигнитре отправить запрос обратно в представление с данными без вызова фактического представления, возможно, $this -> load -> view('$this_referring_view);. Кажется, я не могу найти переменную, которая передает обратный вид.проверка правильности формы кода и множественные представления, получающие доступ к одной и той же функции

if ($this -> form_validation -> run() == FALSE) { 
    $data['failMsg2'] = "failed"; 
    $this -> load -> view('home', $data); 
} else … 

ответ

0

Ваш вопрос очень трудно понять, поэтому я постараюсь помочь, нажав на проблемы более высокого уровня.

У меня есть 3 разных точки зрения, которые имеют доступ к той же функции из того же контроллера, чтобы проверить их форму

Затем вы должны переместить эту проверку в расширенный класс form_validation, который включает в себя новое правило проверки.

Есть ли способ отправить пользователя обратно в представление без фактического вызова вида?

Вы не называете виды, вы вызываете контроллеры, которые, в свою очередь, загружают представления (через выходной буфер). Если вы хотите просто загрузить HTML из представления, просто передайте третий параметр false методу view().

$html = $this->load->view('view', $data, FALSE);

Типичный процесс проверки формы работает следующим образом:

if ($this->form_validation->run() === FALSE) { 
    // Form validation failed, either because it's an initial laod 
    // or because they actually failed to pass validation 
    $this->load->view('view', $data); 
} 

// Form validation has passed, redirect the user 
redirect('view'); 

Любые сообщения об ошибках будут установлены классом проверки формы непосредственно, а не в результате неудачной проверки (так как это происходят при начальной нагрузке).

Примечание: Приведите примеры кода с большим количеством соли, я не коснулся CodeIgniter годами.

+0

Я понимаю все это. И у меня есть все, что уже работает. Главное, что я пытаюсь выполнить, - это когда валидация проходит или терпит неудачу в этой функции, а вместо '$ this-> load-> view ('view name')', что существует способ вызова '$ this-> load-> view ('refer refer views name here') ', так как существует много разных уровней проверки, проверка наличия базы данных для информации, проверка правил проверки и т. д. .... не просто провал провалится. Опять все работает, пытаясь сократить 100 строк кода до 33 – user1881482

+0

извините, а также имя ссылки будет переменной и не будет жестко закодировано. Это главное, что я пытаюсь выполнить. – user1881482

Смежные вопросы