Как передать во 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 то вызываем вьюшку успеха, если нет, то вьюшку провала. Сообщение об ошибке можно не в этот массив, а в сессию положить.
Да, использование массива для передачи данных из модели в контроллер и дальнейшего вызова соответствующих представлений в зависимости от результата является распространенным и удобным подходом.
Вы можете дополнить ваш массив $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'];
Такой подход позволит удобно организовать обработку данных из модели в контроллере и дальнейший вывод информации в представлении.
Да, использование массива для передачи данных из модели в контроллер и дальнейшего вызова соответствующих представлений в зависимости от результата является распространенным и удобным подходом.
Вы можете дополнить ваш массив $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'];
Такой подход позволит удобно организовать обработку данных из модели в контроллере и дальнейший вывод информации в представлении.