Передайте сообщение об ошибке от контроллера для просмотра в zf2
У меня простой логин в zf2. Я хочу показать сообщение об ошибке пользователю, когда имя пользователя / пароль не совпадали.
В view / login.php:
if (isset($error_msg))
{
echo $error_msg;
}
В контроллере у меня есть:
$msg = array('error_msg' => 'Invalid Username or Password');
return $this->redirect()->toRoute('login', $msg);
Здесь error_msg не может быть передан для просмотра, что не так с этим?
Кроме того, я также пытаюсь
$model = new ViewModel(array(
'error_msg' => 'Wrong username or password',
));
$model->setTemplate('login/index');
return $model;
Но здесь ссылка не пошла в логин / индекс. но вместо этого зайдите в логин / процесс. Процесс - это действие, при котором обрабатывается логин.
Помогите мне друзья, пожалуйста. Я хочу передать сообщение об ошибке от контроллера для просмотра. Так как мне это сделать.
1 ответ
Просто вставьте свой код процесса входа в ваше действие индекса входа, для этого не нужно иметь два действия. Когда вы обработали свой логин и определили, что он не прошел, просто передайте сообщение об ошибке вашей модели представления и отобразите его в своем представлении. Это можно сделать несколькими способами.
$viewModel = new ViewModel();
$viewModel->error_msg = 'Wrong username or password';
return $viewModel;
return new ViewModel(array(
'error_msg' => 'Wrong username or password',
));
или просто
return array(
'error_msg' => 'Wrong username or password',
);