[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Вопрос по MVC
Uprising
Всем привет, у меня вопрос по паттерну сабжа, предположим необходимо отправить форму на проверку\регистрацию, т.е. задействовать код без вывода какой либо информации. я это делаю просто - создаю в контроллере метод обработки формы и редиректю на страницу с выводом, ну например /registration/process_form
class Registration_Controller extends ... {
public function process_form(){
.....
redirect_to(link);
}
}

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



Спустя 1 минута, 55 секунд (31.08.2010 - 14:25) Rivalryzerg написал(а):
Немного странноватый подход. Ведь после проверки формы возможно нужно будет вывести ошибки?

Почему вы так решили сделать? Почему не сделать как обычно?

Спустя 3 минуты, 3 секунды (31.08.2010 - 14:28) Uprising написал(а):
как обычно ? process_form выносит вердикт по валидности формы и если чо записывает ошибки в сессию,выбирает линк для редиректа, но это не суть. обычно? Вот я подумал сделать отдельный Process_Controller для обработки всего

Спустя 9 минут, 20 секунд (31.08.2010 - 14:37) Rivalryzerg написал(а):
Допустим метод регистрации пользователя внутри контроллера:

public function register()
{
if (!empty($this->data)) { // пришли ли post-данные
$this->User->set($this->data); // передали данные в модель
if ($this->User->validates()) { // проверяем на ошибки
$this->User->save(); // сохраняем
$this->redirect('/register_success');
}
}
}


Если условие $this->User->validates() не выполнится продолжится выполнение метода и отображение его шаблона с формой регистрации, куда как раз и будут переданы найденные ошибки.

Если не совсем понятно, постараюсь объяснить по-другому

Спустя 2 минуты, 11 секунд (31.08.2010 - 14:40) Uprising написал(а):
Да, действительно так проще =) спасибо

Спустя 1 час, 56 минут, 39 секунд (31.08.2010 - 16:36) Dingo написал(а):
внимание Оффтоп!
ООП мощь laugh.gif

Спустя 1 час, 58 минут (31.08.2010 - 18:34) Uprising написал(а):
а допустим: хочу сделать ajax подгруз комментов, т.е. из js нужно отправить запрос как тогда поступить ?

Спустя 36 минут, 35 секунд (31.08.2010 - 19:11) Rivalryzerg написал(а):
хороший способ внутри метода контролера проверять
if ($this->request->type == 'ajax') {
// выдать информацию, чтото типа $this->render(array('temlate' => 'comments_list'));
exit;
}


но можно и просто ajax-запрос дать на нужный метод контролера, который вернет нужные данные.
Если не секрет, каким фреймворком пользуетесь? Или свой делаете? Потому что в том же кейке подобные моменты есть в туториалах.

Спустя 3 часа, 15 минут, 28 секунд (31.08.2010 - 22:26) Uprising написал(а):
я не пользуюсь фреймворком. спасибо за комментарий, сделал отдельный контроллер.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.