Я думаю, что сценарии Zend неправильно настроены

StackOverflow https://stackoverflow.com/questions/2312122

  •  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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top