Как передать во 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 то вызываем вьюшку успеха, если нет, то вьюшку провала. Сообщение об ошибке можно не в этот массив, а в сессию положить.

21 Авг 2019 в 07:01
404 +1
0
Ответы
1

Да, использование массива для передачи данных из модели в контроллер и дальнейшего вызова соответствующих представлений в зависимости от результата является распространенным и удобным подходом.

Вы можете дополнить ваш массив $res информацией, которую необходимо передать во View, например:

$res = array(
'error' => 1,
'error_msg' => 'Такой e-mail уже есть в БД'
'user_data' => $user_data // данные созданного пользователя, если операция прошла успешно
);

Таким образом, в контроллере вы сможете проверить значения в массиве $res и вызвать соответствующие представления. Кроме того, вы можете использовать сессии для передачи сообщений об ошибках или других данных между контроллером и представлением.

Например, в сессии поключается сообщение об ошибке:

$_SESSION['error_msg'] = 'Такой e-mail уже есть в БД';

И во View вы сможете получить это сообщение:

$error_msg = $_SESSION['error_msg'];

Такой подход позволит удобно организовать обработку данных из модели в контроллере и дальнейший вывод информации в представлении.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир