Zend Framework (バージョン 1.11.11) の routes.ini ファイルでルートを設定しようとしています。これにより、次の URL に一致させることができます。
my.domain.com/shop/add/123
とShopController
にaddAction
。しかし、何らかの理由で、パラメーター (末尾の数字) が私のアクションで認識されていません。私が得ているPHPエラーは
Warning: Missing argument 1 for ShopController::addAction(), called in...
ブートストラップで PHP コードを使用してこれをセットアップできることは知っていますが、.ini ファイルでこのタイプのセットアップを行う方法を理解したいのですが、これを説明するリソースを見つけるのに苦労しています。また、プロジェクトでモジュールを使用していることも指摘しておく必要があります。オンラインであちこちにあるさまざまなスニペットを使用して私が思いついたのは次のとおりです。
application/config/routes.ini:
[routes]
routes.shop.route = "shop/add/:productid/*"
routes.shop.defaults.controller = shop
routes.shop.defaults.action = add
routes.shop.defaults.productid = 0
routes.shop.reqs.productid = \d+
Bootstrap.php:
...
protected function _initRoutes()
{
$config = new Zend_Config_Ini(APPLICATION_PATH . '/configs/routes.ini', 'routes');
$router = Zend_Controller_Front::getInstance()->getRouter();
$router->addConfig( $config, 'routes' );
}
...
ShopController.php
<?php
class ShopController extends Egil_Controllers_BaseController
{
public function indexAction()
{
// action body
}
public function addAction($id)
{
echo "the id: ".$id;
}
}
これが機能しない理由について何か提案はありますか? .ini ファイルを介した Zend でのルーティングについて、何か基本的なことが欠けているように感じます。