Задать вопрос
@kot-samolet

Где осуществлять проверку формы в MVC?

Приходит POST-запрос на регистрацию юзера. Полей много, где-то 10. Валидацией полей занимается отдельный класс Validator, причём его методы настроены на каждый тип поля в отдельности. Если валидировать данные в контроллере, то получится такой метод контроллера:
public function addData()
    {
        $v = new Validator();
        $mail = $v->checkEmail($_POST['email']);
        $pass = $v->checkPwd($_POST['pass1'], $_POST['pass2']);
        $bdate = $v->checkBdate($_POST['bdate']);
        $adress = $v->checkAddr($_POST['adress']);
        $company = $v->checkCom($_POST['company']);
        $wife = $v->checkCom($_POST['wife']);
        $city = $v->checkCity($_POST['city']);
        $document = $v->checkDoc($_POST['document']);
        $husb = $v->checkHusb($_POST['husb']);
        $num = $v->checkNum($_POST['num']);
        
        if('всё верно'){
            $model = new User();
            $result = $model->createUser();
        } else {
            return $error;
        }
        
        $view = new View();
        $show = $view->RegSuccess($result);
        return $show;
    }

Это нормально? С одной стороны пишут что валидацию надо в контроллерах а не в модели делать, с другой, что контроллеры должны быть тонкие.

Ещё вопрос: если контроллер занимается валидацией, стот ли его унаследовать от класса валидатор? Тогда он будет обращаться к методам родителя и не надо будет делать $v = new Validator();
  • Вопрос задан
  • 272 просмотра
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 2
rpsv
@rpsv
делай либо хорошо, либо никак
Правила валидации - это часть модели.
MVC в том и суть, что вы можете менять местами все его составные части:
1. Использовать M в разных C
2. Отображать M с помощью разных V
3. Выбирать V с помощью C в зависимости от запроса
Ответ написан
villiwalla
@villiwalla
HTML-верстка
Правила валидации либо в свойстве модели или контроллера. Контроллер надо наследовать от того что создаёт вьюху
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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