gpt4 book ai didi

php - Zend 框架 2 : Catch all route and url escape

转载 作者:搜寻专家 更新时间:2023-10-31 22:09:43 25 4
gpt4 key购买 nike

我正在尝试创建或找到一条基本上可以捕获所有路线的路线。我需要的是可以像下面这样路由的东西;

/some-page/some-childpage/another-childpage
/another-page
/yet-anotherpage/page

这些 url 不会与任何模块相关,它们更像是管理员可以在任何 url 创建页面。

我现在有一些东西可以使用通配符路由和子通配符路由捕获路由,但是当我在 URL View 帮助程序中使用它时,它正在对“url”参数中的正斜杠进行编码。基本上:

$this->url( 'public_page', array( 'url' => 'foo/bar' ) )

正在输出/foo%2Fbar

除了不允许/s 之外,当尝试检索 url 参数时,它会将查询字符串返回到第一个/。

任何帮助和建议都会很棒!

问候,迈克尔

最佳答案

我不确定您是否可以使用任意数量的分割来做到这一点。您可以指定一个具有您期望的最大段数的段路由,然后只允许它们都是可选的,但如果您尝试使用大量段,这似乎是一种肮脏的方式。

'route' => '/:controller[[[[/:action]/:third]/:fourth]/:fifth]',
'constraints' => array(
'controller' => '[a-zA-Z][a-zA-Z0-9_-]+',
'action' => '[a-zA-Z][a-zA-Z0-9_-]+',
),
'defaults' => array(
'controller' => 'Application\Controller\IndexController',
'action' => 'index',
'third' => 'something',
'fourth' => 'something-else',
),

您可能会使用 Regex 路由完成某些操作,但这也可能很糟糕。

http://framework.zend.com/manual/2.0/en/modules/zend.mvc.routing.html#zend-mvc-router-http-regex

我可能会建议使用更好的 url 结构,因为无论如何深度 url 都不是很好。

关于php - Zend 框架 2 : Catch all route and url escape,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14124477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com