0

我在 Zend Framework 2 中为段路由创建段子路由时遇到了一些麻烦。我试图从文档中获取它,但这让我有点困惑。想知道任何人都可以帮助我。

这基本上是我要定义的路线:

root/monitor/customer/12424/job/1243

其中 12424 是客户 ID,1243 是工作 ID。工作部分也可以是不同的动作。

以下是我尝试对路由进行的操作。我尝试了几种不成功的方法,但这只是我目前的一种。一切都在工作之前。

'router' => array(
    'routes' => array(
        'monitor' => array(
            'type'      =>  'segment',
            'options'   => array(
                'route' => '/monitor[/][:action][/:id]',
                'constraints' => array(
                    'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'id'     => '[0-9]+',
                ),
                'defaults' => array(
                    'controller' => 'Monitor\Controller\Monitor',
                    'action'     => 'index',
                ),
            ),
            'child_routes' => array(
                'customer' => array(
                    'type' => 'segment',
                    'options' => array(
                        'route' => '/customer/:id[/][/:action/:jobid]',
                        'defaults' => array(
                            'action' => 'customer'
                        )
                    ),
                ),
            ),          
        ),
    ),
),

我收到以下 404 错误:

The requested URL could not be matched by routing.
4

1 回答 1

0

您应该尝试通过分离静态部分并将其余部分放在 child_routes 中来将其重构为类似的东西:

        'monitor' => array(
            'type'      =>  'literal',
            'options'   => array(
                'route' => '/monitor',
            ),
            'child_routes' => array(
                'something' => array(
                    'type' => 'segment',
                    'options' => array(
                        'route' => '[/:action][/:id]',
                        'constraints' => array(
                            'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'id'     => '[0-9]+',
                        ),
                        'defaults' => array(
                            'controller' => 'Monitor\Controller\Monitor',
                            'action'     => 'index',
                        ),
                    ),
                ),
                'customer' => array(
                    'type' => 'segment',
                    'options' => array(
                        'route' => '/customer/:id[/:action/:jobid]',
                        'defaults' => array(
                            'action' => 'customer'
                        )
                    ),
                ),
            ),
        ),
于 2013-08-30T13:00:11.740 回答