2009-09-08 10 views
0

Zend Frameworkの:ディスパッチ前にリクエストのコントローラ/アクションの値を取得するにはどうすればよいですか?

I have the following url /base/url/[number]/[string] 
OR      /base/url/action/controller/param/value 

私は /ベース/ URL /コントローラ/ A /アクション/ B/ID/[番号] /名前/ [文字列]にそれを変換するために/base/url/[number]/[string]の場合にしたい aとbは定数です(つまり、アクションの代わりに数字が表示されるたびに、同じ値が使用されます)。
ディスパッチされる前に、アクションとコントローラの値はどこで捕捉できますか?

答えて

2

routeShutdown()のコントローラプラグイン(ルートを選択した後)またはpreDispatch()(すべてのコントローラディスパッチ前)でアクションとコントローラを受信できます。 routeShutdownを使うと思います。あなたはまったく何にもコントローラとアクションを設定することができますので、あなたがルートのようなものを処理するためのカスタムルートを作成し、それらを正しいコントローラやURLに派遣することができHow to write plugins

..

0

をアクセス要求を持っています。例えば

$router = $front->getRouter(); 
$router->addRoute(
    'my_route', 
    new Zend_Controller_Router_Route(
     ':number/:string', 
     array(
       'controller' => 'your_controller', 
       'action' => 'your_action' 
     ) 
    ) 
); 
+0

だから、どのように私は、URLから番号を抽出していますか? /16/something - >/question/show/id/16 –

+0

コントローラに$ this-> _ getParam( 'number')と$ this-> _ getParam( 'string')を使用してくださいあなたのルートが: :page /:name $ this - > _ getParam( 'page')と$ this - > _ getParam( 'name')を使用して抽出します。 – Chris

関連する問題