Zend Framework: как получить параметры по умолчанию? - PullRequest
2 голосов
/ 16 апреля 2009

Как получить параметр «по умолчанию», если он не указан?

Обратите внимание на следующее:

http://localhost/controller/action/id/123

В моем контроллере я могу получить значение id с помощью

$request = $this->getRequest();
$id = $request->getParam('id');

Если URL-адрес

http://localhost/controller/action/456

как мне получить значение 456? Как называется «парам»?

Ответы [ 3 ]

4 голосов
/ 16 апреля 2009

По умолчанию ZF URL должен соответствовать шаблону:

/controller/action/param1Name/param1Val/param2Name/param2Val ...

Вы должны использовать router . Например, в bootstrap.php:

$frontController = Zend_Controller_Front::getInstance(); 
//^^^this line should be already there

$router = $frontController->getRouter();
$route = new Zend_Controller_Router_Route(
    'yourController/yourAction/:id',
    array(
        'id'       => 1, //default value
        'controller' => 'yourController',
        'action'     => 'yourAction'
    ),
    array('id' => '\d+')
);
$router->addRoute('yourController', $route);
1 голос
/ 16 апреля 2009

Просто хочу поделиться.

Указанные выше настройки маршрутизатора должны использоваться с $ frontController.

И обязательно поставьте его перед отправкой контроллера.

<..above router code goes here...>

// Dispatch the request using the front controller. 
$frontController->dispatch ();

Надеюсь, не трать время, как я. ; -)

0 голосов
/ 16 апреля 2009

попробуйте добавить этот маршрут к маршрутизатору:

$route = new Zend_Controller_Router_Route_Regex(
    'my_controller/my_action/(\d+)',
    array(
        'controller' => 'my_controller',
        'action'     => 'my_action'
    )
);

$router->addRoute('my_route', $route);
...