2012-01-23 2 views
0

У меня есть простой вопрос здесь. Действительно ли это плохая идея, чтобы действие контроллера возвращало что-то (используя return $ something;). Это хорошая или плохая практика MVC?возврат внутри контроллера действия MVC cakePHP

Я знаю, что хорошая практика MVC требует от контроллеров передачи данных в представление, но что делать, если у меня есть только отдельная функция, которая не будет использовать какие-либо представления? Могу ли я не просто вернуть значение этой функции?

Заранее спасибо экспертов

+0

Если вы не используете «Вид», как вы получаете данные обратно пользователю? – cspray

+0

Это просто автономная функция, которая выполняет определенную задачу, которая не требует каких-либо представлений (например, например, функция удаления). Действия удаления контроллера не имеют никаких просмотров. – user765368

+0

Если это не требуется, почему вы ничего не возвращаете? Если это функция удаления, вы можете установить флеш-сообщение, а затем перенаправить в конце действия - это не потребует представления. – jmking

ответ

2

Ok, это не так много «плохая идея» для возврата значения из контроллера действий, как это «это не то, как CakePHP работает». Если вы хотите, чтобы ответ был отправлен пользователю, вам нужно передать его в «Вид». В вашем примере у вас есть действие удаления, которое не нужно отправлять просмотру пользователю. Я бы сказал, что ему нужно отправить представление. Возможно, «Просмотр», который вы отправляете обратно, просто должен быть ответом JSON, в котором указано, было ли удаление успешным, а не весь HTML-документ.

«Просмотр» - это то, что передает данные пользователю. Пусть «Вид» позаботится об этих обязанностях и не пытается заставить Контролера начать делать слишком много.