Zend framework2 Zend Framework 2,仅当路由具有子路由时,带查询的路由才会失败
由于2.1.4不推荐使用查询路由,我将按如下方式路由到我的博客:Zend framework2 Zend Framework 2,仅当路由具有子路由时,带查询的路由才会失败,zend-framework2,zend-route,Zend Framework2,Zend Route,由于2.1.4不推荐使用查询路由,我将按如下方式路由到我的博客: 'cro-blog' => array( 'type' => 'Literal', 'options' => array( 'route' => '/blog', 'defaults' => array( 'controller' =&
'cro-blog' => array(
'type' => 'Literal',
'options' => array(
'route' => '/blog',
'defaults' => array(
'controller' => 'CroBlog\BlogController',
'action' => 'index',
),
),
),
并链接到像/blog?p=x
这样的页面,其中x
是页码。在我添加子路由之前,这一切都非常有效。链接到/blog
仍然有效,但链接到页面会得到404(更具体的是“请求的URL无法通过路由匹配”)。这是我当前的设置:
'cro-blog' => array(
'type' => 'Literal',
'options' => array(
'route' => '/blog',
'defaults' => array(
'controller' => 'CroBlog\BlogController',
'action' => 'index',
),
),
'may_terminate' => true,
'child_routes' => array(
'post' => array(
'type' => 'Segment',
'options' => array(
'route' => '/:slug',
'constraints' => array(
'slug' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'action' => 'post',
),
),
),
),
),
我使用的是段子路由,但文字子路由也存在同样的问题
有没有办法保持页面查询和子路由?这就解决了。如果有人经历过同样的问题,这对我来说是有效的
- 清除所有缓存(EdpSuperluminal、APC等)
- 删除Zend库
- 在不使用Zend library的情况下运行应用程序(当然会出现大量错误,但这对我来说是使其正常工作的关键)
- 重新安装Zend库
- 再次运行应用程序
编辑过早得出(错误的)结论。启动了Zend Studio 10,现在又出现了错误。我认为Zend Studio 10正在还原一些文件(并非所有文件,因为查询路由被标记为不推荐使用)。不过,考虑到这个问题,只需要找到一种方法来告诉ZDEStudio 10使用2.1.4。谢谢 我无法在本地复制,在视图中使用
,并且跟随链接不会给出404。也许我遗漏了什么:-/你的评论让我想到了另一个我忘了提到的问题。像这样使用URL视图帮助器(带有查询选项)对我来说不起作用。它回显“/blog”,忽略查询。我最后使用字符串连接添加了查询,但忘记了它。奇怪,您确定您正在以相同的方式构造它,并且查询包含在第三个参数中吗?也许复制/粘贴我的测试。似乎其他力量在某处对url帮助程序起作用,使其也无法按预期工作。这是一个明显的问题,但您是否尝试过更新ZF2以确保其同步。我将您的评论粘贴到测试中,并进行了回应
。只是再次删除了整个Zend目录并下载了一个新的,同样的问题。我的头脑感到困惑:(这个应用程序是建立在以前版本(我认为是2.1)的框架应用程序之上的),可能是配置问题吗?结果是一个奇怪的缓存问题,我发布了我所做的,最终解决了这个问题,作为一个答案,以防有人遇到同样的问题,尽管我不知道为什么它会起作用。非常感谢您的帮助!:)