@kot-samolet

Как передать во View результат работы Model?

Метод в контроллере:
public function createUser()
    {
        $model = new UserModel();
        $result_create = $model->createUser($POST = '');

        $view = new afterCreateView();
		
		// если удачно то
        $result = $view->succsessUserCreate($result_create);
		
		// если неудачно то
        $result = $view->failUserCreate($result_create);
		
        return $result;
    }

Модель валидирует данные из POST и если всё в порядке создаёт юзера. В каком виде лучше возвращать данные из модели в контроллер что бы удобно было вызвать разные вьюшки в зависимости от резуьтата? Мне пока приходит в голову только идея с массивом вида:
$res = array(
  'error' => 1,
  'error_msg' => 'Такой e-mail уже есть в БД'
);

Т.е. контролле проверяет если $res['error'] === 0 то вызываем вьюшку успеха, если нет, то вьюшку провала. Сообщение об ошибке можно не в этот массив, а в сессию положить.
  • Вопрос задан
  • 199 просмотров
Пригласить эксперта
Ответы на вопрос 1
webinar
@webinar Куратор тега PHP
Учим yii: https://youtu.be/-WRMlGHLgRg
Создаете в моделе переменную $errors и там в массиве храните все ошибки, а метод добавляет туда ошибку. При этом этот метод возвращает только true или false. Соответственно экшене будет как-то так:
if($model->someMethod()){
 return $view->succsessUserCreate($result_create);
}
return $view->failUserCreate($result_create,$model->errors);
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы