Задать вопрос
DevartNigga
@DevartNigga
Потный

Как передать ошибку пользователю в MVC?

Пилю свой велосипед и столкнулся с задачей передать ошибку во вьюху

Имеется модель Auth с методом создания пользователя, где проверяется идентичность паролей и в случае неудачи возвращается ошибка из массива $error['passwords_are_not_equal']

Собственно вопрос: каким способом лучше передать ошибку во view, не используя костылей подобных сувания ошибки в сессию и т.п. Или все же передавать через контроллер, но при этом придется совершать в нем множество проверок, типа проверка на уникальность пользователя, пустоту полей, идентичность паролей ?
  • Вопрос задан
  • 182 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 3
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
не использую костылей подобных сувания ошибки в сессию

это и есть единственный расово верный способ.
Использовать flash сообщения через сессию.
Ответ написан
@McBernar
Пробрасываете из модели ошибку. Именно модель работает с компонентами валидации.
Ловите ошибку в контроллере.
Рендерите эту ошибку вместе с вьюшкой.
Ответ написан
@MadridianFox
Web-программист, многостаночник
передавать через контроллер, но при этом придется совершать в нем множество проверок, типа проверка на уникальность пользователя, пустоту полей, идентичность паролей

Этим вы делаете толстый контроллер. На самом деле форма - это модель. Это страница на которой есть своя логика, и в зависимости от действий пользователя она меняет своё состояние, которое и отображается пользователю.
И вот логика формы реализуется в модели формы, которая в свою очередь может дёргать более глубокие слои приложения.
Таким образом задачей контроллера становится только получение данных из http запроса, засовывание их в модель и вызов у модели одного-двух методов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽