加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 子路径中的ZF2可选路由约束

发布时间:2020-12-13 14:10:32 所属栏目:PHP教程 来源:网络整理
导读:我在路径中的可选约束存在问题,该路径在其子项中是非可选的.我的路由结构如下: 'profile' = [ 'type' = 'segment','options' = [ 'route' = '/profile[/:id]','constraints' = ['id' = '[0-9]*'],'defaults' = [ 'controller' = 'UserControllerUser','ac
我在路径中的可选约束存在问题,该路径在其子项中是非可选的.我的路由结构如下:
'profile' => [
    'type' => 'segment','options' => [
        'route' => '/profile[/:id]','constraints' => ['id' => '[0-9]*'],'defaults' => [
            'controller' => 'UserControllerUser','action' => 'profile'
        ]
    ],'may_terminate' => true,'child_routes' => [
        'sessions' => [
            'type' => 'literal','options' => [
                'route' => '/sessions','defaults' => ['action' => 'sessions']
            ]
        ]
    ]
]

在我看来应该给我以下路线:

> / profile – 有效
> / profile / 123 – 有效
> / profile / sessions – 不起作用
> / profile / 123 / sessions – 有效

当我在URL视图助手中使用路由3时,我收到以下错误:

$this->url('profile/sessions');

ZendMvcRouterExceptionInvalidArgumentException: Missing parameter “id”

我最初有[0-9]作为我的约束,但让它可选(*)似乎没有帮助.以前有没有人遇到这个案子?

我曾经遇到过同样的问题,我发现的唯一解决方案是创建一个单独的路由(在你的情况下为/ profile / sessions)作为基本路由的可选参数,在访问子路由时似乎是必须的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读