Zendのフロントコントローラーでルーティング設定をした時の引数

ZendFrameworkを利用して、index.phpなどのフロントコントローラー上でルーティング設定をした際、


URL内の情報を引数としてコントローラーに渡したい場合がある。


例えば下記の例。


 




$router = $front->getRouter();
$route = new Zend_Controller_Router_Route(
':controller/:action/*',
array(
'module'    => 'default',
'controller'=> 'index',
'action'    => 'index',
));
$router->addRoute('default',$route);

//その他ページ出力
$route = new Zend_Controller_Router_Route_Regex(
'abebe/abebe.php',
array(
'module'    => 'default',
'controller'=> 'abebe',
'action'    => 'index',
) );
$router->addRoute('indexpage',$route);


 



 



このabebe.phpで



$val = $this->_getParam('var1');

というように引数を受け取りたい。


などなど。

その時は、フロントコントローラーのルーティング上で


 




$route = new Zend_Controller_Router_Route_Regex(
‘abebe/abebe.php?var1=(.*)’,
array(
‘module’ => ‘default’,
‘controller’=> ‘abebe’,
‘action’ => ‘index’,
),
array( 1 => ‘var1′ )
);
$router->addRoute(‘indexpage’,$route);


というように正規表現の情報をZend_Controller_Router_Route_Regexの第3引数にセットしてあげればよい。


 






コメントをどうぞ