0

这是路线...

'panel-list' => array (
    'type' => 'Segment',
    'options' => array (
        'route'    => '/panel-list/:pageId[/:action]',
        'constraints' => array (
            'pageId' => '[a-z0-9_-]+'
        ),
        'defaults' => array (
            'action' => 'index',
            'controller' => 'PanelList',
            'site' => null
        ),
    ),
),

我需要在这里放什么......

public function indexAction()
{
    echo ???????
}

回显 pageId?

4

3 回答 3

3

在 zf2 的 beta5 中,它变得更容易使用,因此您不需要为每种不同的类型记住不同的语法。我引用

新的“参数”控制器插件。允许检索查询、发布、cookie、标头和路由参数。用法是 $this->params()->fromQuery($name, $default)。

因此,要从路由中获取参数,您需要做的就是。

$param = $this->params()->fromRoute('pageId');

正如引文所说,这也可以通过查询($_GET)和发布($_POST)等来完成。

$param = $this->params()->fromQuery('pageId');
// will match someurl?pageId=33

$param = $this->params()->fromPost('pageId');
// will match something with the name pageId from a form.

// You can also set a default value, if it's empty.
$param = $this->params()->fromRoute('key', 'defaultvalue');

例子:

$param = $this->params()->fromQuery('pageId', 55);

如果 url 是 someurl?pageId=33 $param 将保持值 33。如果 url 没有 ?pageId $param 将保持值 55

于 2012-07-24T14:34:04.237 回答
2

你有没有尝试过

$this->getRequest()->getParam('pageId')
于 2012-07-24T08:40:13.180 回答
2

$this->getEvent()->getRouteMatch()->getParam('pageId');

于 2012-07-24T08:59:14.680 回答