2011-08-09 8 views
2

私はZendの新しい開発者です。私はZendで非常に簡単なアプリケーションを開発しています。Zendフレームワークで明示的に無効なコントローラを扱います

これを行うには、コントローラー名とアクション名が存在しない場合は取得する必要があります。

たとえば、私はページという名前のコントローラを持っており、そのコントローラのビューアクションでは、IDパスに基づいてページコンテンツを表示します。そこで彼は、URLは次のようになります。

http://localhost/page/view/slug/some-slug-value 

私は次のリンク、

http://localhost/some-slug-value 

を書く場合は代わりに、無効なコントローラエラーを表示するので、それはまた、そのスラグのためのDBをSERCHとビューを開く必要があることを望みますページコントローラ内のアクション。

エラーを表示する必要がある場合でも、URL http://localhost/some-slug-valueを変更したくありません。

無効なアクションを処理しなければならない場合は、そのコントローラの__call()関数を使用して処理できます。無効なコントローラを処理するには__call関数が必要です。

私はZendの新機能として、あなたが提案しようとしているコードをどこに書かなければならないのかを述べてください。

答えて

1

Zend_Controller_Plugin_ErrorHandlerが原因と不足しているコントローラ/アクションに例外を処理することができ、事前に

おかげで、デフォルトで有効になっています。あなたのロジックを内部に置くことができます。

1

カスタムプラグインhereを使用する前に、同様の質問に回答しました。

基本的には、要求をディスパッチできるかどうかをチェックし、要求できない場合は別のコントローラ/アクションにリダイレクトします。これは、ErrorHandlerプラグインの前に発生し、ErrorHandlerが意図したとおりにエラーを処理できるようにします。私はその旅館にリンクされ、質問にプラグインを注意する必要があり

EDITは、私は、ユーザー名を参照しました。あなたの場合は、usernameの代わりにslugを使用する必要があります。

関連する問題