首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zf2正则路由

zf2正则路由
EN

Stack Overflow用户
提问于 2015-01-28 12:49:31
回答 1查看 522关注 0票数 0

我在挣扎于regex路由..。下列网址应有效:

  • /shop/api/list
  • /商店/空气污染指数/购物车
  • /shop/api/登录
  • /商店/空气污染指数/详细资料/0123456789

details url,最后一个,并没有真正地与以下路线合作:

代码语言:javascript
复制
            'child_routes' => array(
                'angularlist' => array(
                    'type' => 'Regex',
                    'options' => array(
                        'regex'    => '/api/(?<page>login|cart|list|details(?<id>\/[0-9]+))',
                        'spec' => '/api/%page%[/:%id%]',
                        'defaults' => array(
                            '__NAMESPACE__' => 'Shop\Controller',
                            'controller'    => 'Api',
                            //'action'        => '[a-zA-Z][a-zA-Z0-9_-]*',
                            'action'        => 'list',
                        //  'param'         => '[0-9]',
                        ),
                        /* todo ipv elke child toe te voegen 'route'    => '/api/[:action]', 'constraints' => array(
                            'action' => 'list|details|login|dashboard'
                        )*/
                    ),
                ),
             )
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-28 13:46:46

您可以轻松地实现如下所示的细分市场路由堆栈,而不是挣扎于低可读性和肮脏的regex攻击:

代码语言:javascript
复制
'shop' => array(
    'type'    => 'Segment',
    'options' => array(
        'route'    => '/shop/api',
        'defaults' => array(
            '__NAMESPACE__' => 'Shop\Controller',
            'controller'    => 'Api',
            'action'        => 'index'
        ),
    ),
    'may_terminate' => true,
    'child_routes'  => array(
        'angularlist' => array(
            'type'    => 'Segment',
            'options' => array(
                'route'       => '/:action[/:id]', // id is optional
                'constraints' => array(
                    'action'     => '[a-zA-Z][a-zA-Z0-9_-]*',
                    'id'         => '[0-9]+',
                ),
                'defaults' => array(
                    'action' => 'index',
                ),
            ),
        ),
    )
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28192692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档