动态段的Zend路由问题

时间:2014-05-08 15:18:23

标签: php zend-framework2 zend-route

我正在研究Zend项目,我在路由器/路由方面遇到了一些问题。

我想要这些网址:

  1. www.mydomain.tld /接触/人
  2. www.mydomain.tld /接触/人/ formsend
  3. www.mydomain.tld /接触/人/ ID
  4. URL中的第三个段将是固定文本“formsend”,或者它将包含一个ID,例如'123456789'。 URL 1和3都应该执行indexAction(),URL 2必须执行sendAction()

    现在我有了这些路由的设置,以使URL 1和2正常工作:

    return array( 
        'router' => array(
            'routes' => array(
            'contact' => array(
                'type' => 'Segment',
                'options' => array(
                    'route' => '/contact[/][:dns]',
                    'defaults' => array(
                        '__NAMESPACE__' => 'project\Controller',
                        'controller' => 'Contact',
                        'action' => 'index',
                    ),
                ),
                'may_terminate' => true,
                'child_routes' => array(
                    'send' => array(
                        'type' => 'Segment',
                        'options' => array(
                            'route' => '[/[:action[/]]]',
                            'defaults' => array(
                              'action' => 'send'
                            ),
                        ),
                    ),
                 ),
            ),
    

    我不知道如何更改路线,以便能够在indexAction()内部设置segment_3。我需要改变什么?

1 个答案:

答案 0 :(得分:2)

听起来你只需要两条路线:

首先定义/contact/:type/formsend,然后定义/contact/:type[/:id]

您可以让他们成为顶级(非终止)/contact/contact/:type路线的孩子。