Валидация в контроллере и распределение ролей в MVC? Почитал несколько похожих вопросов, например Как и где правильно осуществлять валидацию данных в MVC? пишут что валидацией должен заниматься контроллер. Это понятно если валидировать нужно относительную простую информацию типа URL или IP и то если таких проверок много не множить же их в каждом контроллере... Напрашивается вынос в отдельный класс, назовём его Validator и просто подключение его нужных методов в контроллере. 1) К какому типу тогда будет относиться сам класс Validator? Model, Controller или что-то типа Хелпера или Middleware? 2) В системе запрашивают страницу редактирования сотрудника вида domain.com/employer/edit/123 срабатывает класс employer метод edit. Где надо проверить само существование сотрудника № 123? Я сейчас проверяю в модели, т.е. в классе employer методе edit в самом начале. Вроде бы надо вынести в контроллер, но для такой проверки нужна работа с БД, а работа контроллера чисто разруливать запросы. На ум идёт так же только создание класса Validator который с БД будет работать но он сам по себе уже полноценной моделью по сути будет.
1) Класс Validator будет относиться скорее к типу Helper или Middleware. Он будет отвечать за валидацию данных перед их обработкой и может быть использован в разных частях приложения.
2) Для проверки существования сотрудника № 123 перед редактированием его данных можно использовать модель сотрудника. Контроллер может обратиться к модели, чтобы проверить существование сотрудника с указанным идентификатором в базе данных. Модель будет отвечать за взаимодействие с базой данных и проверку существования записи. Поэтому такая проверка логично выносится в модель. Класс Validator, который работает с базой данных, может быть избыточным для данной задачи.
1) Класс Validator будет относиться скорее к типу Helper или Middleware. Он будет отвечать за валидацию данных перед их обработкой и может быть использован в разных частях приложения.
2) Для проверки существования сотрудника № 123 перед редактированием его данных можно использовать модель сотрудника. Контроллер может обратиться к модели, чтобы проверить существование сотрудника с указанным идентификатором в базе данных. Модель будет отвечать за взаимодействие с базой данных и проверку существования записи. Поэтому такая проверка логично выносится в модель. Класс Validator, который работает с базой данных, может быть избыточным для данной задачи.