Я думаю, что сценарии Zend неправильно настроены
-
22-09-2019 - |
Вопрос
Когда я создал новый контроллер, т.е. в этом случае Authenticate
, Я также создал папку и файл application/views/scripts/authentication/index.phtml
Не проблема при ударе по URL http://dev.local/authentication/
но при вызове каких -либо действий т.е. http://dev.local/authentication/login
, Я получаю ошибку ниже.
Message: script 'authentication/login.phtml' not found in path (C:\Sites\application\views\scripts\)
Независимо от каких -либо изменений, которые я собираюсь внести в действие входа в систему, он не должен автоматически просить новую страницу, верно? Или я ошибаюсь?
Решение
По умолчанию каждое действие требует соответствующего представления (страница PHTML). Если вы хотите отключить представление/макет для данного действия, вы можете использовать следующий код:
$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);
Измените в ответ на комментарий:
Обычно мне не нужно это делать, потому что действия, которые у меня есть, не нуждаются в сценарии просмотра, перенаправлены/предназначены для других действий. Например, как только ваш пользователь будет аутентифицирован (т. Е. Когда достигнет успеха /аутентификации /входа), вы можете перенаправить его на домашнюю страницу (или на любую страницу, к которой он пытался получить доступ. Аналогично, если вход не удался, я просто установил сообщение об ошибке в представление и вперед к действию, которое показывает форму входа в систему.
Единственные действия, для которых я использую приведенный выше код, - это, например, действия, которые обычно называют с помощью AJAX, и которые выводят код JSON.