Я пытаюсь настроить маршрут в Zend Framework (версия 1.11.11) в файле rout.ini, что позволило бы соответствовать следующему URL:
my.domain.com/shop/add/123
до ShopController
и addAction
. Однако по какой-то причине мой параметр не распознает параметр (число в конце). Я получаю ошибку PHP
Warning: Missing argument 1 for ShopController::addAction(), called in...
Я знаю, что мог бы установить это, используя PHP-код в начальной загрузке, но я хочу понять, как выполнить этот тип настройки в INI-файле, и мне трудно найти какие-либо ресурсы, объясняющие это. Я также должен отметить, что я использую модули в своем проекте. То, что я придумал, используя различные фрагменты, найденные здесь и там онлайн, таково:
приложение / 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;
}
}
Любые предложения относительно того, почему это не работает? У меня такое чувство, что я упускаю что-то фундаментальное в маршрутизации в Zend через файлы .ini.