[php] Zend FrameworkのアクションメソッドパラメータとしてURLセグメントを使用する



1 Answers

Zend_Controller_Routerクラスを見てみましょう:

http://framework.zend.com/manual/en/zend.controller.router.html

これらは、必要な方法であなたのURLにマップするZend_Controller_Router_Routeを定義することを可能にします。

IndexコントローラのIndexアクションに4つの静的パラメータを持つ例を次に示します。

$router = new Zend_Controller_Router_Rewrite();

$router->addRoute(
    'index',
    new Zend_Controller_Router_Route('index/index/:param1/:param2/:param3/:param4', array('controller' => 'index', 'action' => 'index'))
);

$frontController->setRouter($router);

これは、フロントコントローラを定義した後のブートストラップに追加されます。

一度あなたの行動に入ると、あなたは以下を使うことができます:

$this->_request->getParam('param1');

あなたのアクションメソッドの中で値にアクセスする。

アンドリュー

Question

Kohana / CodeIgniterでは、次の形式のURLを使用できます。

http://www.name.tld/controller_name/method_name/parameter_1/parameter_2/parameter_3 ...

そして、私のコントローラのパラメータを次のように読んでください:

class MyController 
{
    public function method_name($param_A, $param_B, $param_C ...)
    {
        // ... code
    }
}

Zend Frameworkでこれをどのように達成していますか?




より複雑な設定を可能にする簡単な方法については、 この記事を試してみてください。 要約すれば:

application/configs/routes.ini作成application/configs/routes.ini

routes.popular.route = popular/:type/:page/:sortOrder
routes.popular.defaults.controller = popular
routes.popular.defaults.action = index
routes.popular.defaults.type = images
routes.popular.defaults.sortOrder = alltime
routes.popular.defaults.page = 1
routes.popular.reqs.type = \w+
routes.popular.reqs.page = \d+
routes.popular.reqs.sortOrder = \w+

bootstrap.php追加

// create $frontController if not already initialised
$frontController = Zend_Controller_Front::getInstance(); 

$config = new Zend_Config_Ini(APPLICATION_PATH . ‘/config/routes.ini’);
$router = $frontController->getRouter();
$router->addConfig($config,‘routes’);



Related