1

新しいコントローラーを作成したとき、つまりこの場合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\)

ログインアクションに変更を加えようとしても、新しいページを自動的に要求するべきではありませんか? または私は間違っていますか?

4

1 に答える 1

1

デフォルトでは、各アクションには対応するビュー (phtml ページ) が必要です。特定のアクションのビュー/レイアウトを無効にする場合は、次のコードを使用できます。

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

コメントに応じて編集:

ビュースクリプトを必要としないアクションは他のアクションにリダイレクト/転送されるため、通常はこれを行う必要はありません。たとえば、ユーザーが認証されると (つまり、/authentication/login が成功した場合)、ユーザーをホームページ (またはユーザーがアクセスしようとしていたページ) にリダイレクトできます。同様に、ログインに失敗した場合は、単純にエラー メッセージをビューを呼び出して、ログイン フォームを表示するアクションに転送します。

上記のコードを使用する唯一のアクションは、通常は AJAX を使用して呼び出され、JSON コードを出力するアクションなどです。

于 2010-02-22T16:05:47.130 に答える