Pergunta

Quando eu criei um novo controlador, ou seja, neste caso Authenticate, Eu também criei a pasta e o arquivo application/views/scripts/authentication/index.phtml

Não é um problema ao atingir o URL http://dev.local/authentication/ Mas ao chamar qualquer ação, ou seja, http://dev.local/authentication/login, Eu recebo o erro abaixo.

Message: script 'authentication/login.phtml' not found in path (C:\Sites\application\views\scripts\)

Independentemente de quaisquer alterações, vou fazer na ação de login, ela não deve pedir automaticamente uma nova página, certo? ou eu estou errado?

Foi útil?

Solução

Por padrão, cada ação requer sua visualização correspondente (página phtml). Se você deseja desativar uma visualização/layout para uma determinada ação, pode usar o seguinte código:

$this->_helper->layout()->disableLayout();
$this->_helper->viewRenderer->setNoRender(true);

Editar em resposta ao comentário:

Normalmente, não preciso fazer isso, porque as ações que tenho que não precisam de um script de visualização são redirecionadas/adquiridas para outras ações. Por exemplo, depois que seu usuário é autenticado (ou seja, quando /autenticação /login é bem -sucedido), você pode redirecioná -lo para a página inicial (ou qualquer página que ele estava tentando acessar. Da mesma forma, se o login falhar, eu simplesmente defino uma mensagem de erro na a visualização e a encaminhamento para a ação que mostra o formulário de login.

As únicas ações para as quais eu uso o código acima são para ações que normalmente são chamadas de Ajax e que a saída de algum código JSON, por exemplo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top