Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Zend framework2 Zend Framework 2,仅当路由具有子路由时,带查询的路由才会失败_Zend Framework2_Zend Route - Fatal编程技术网

Zend framework2 Zend Framework 2,仅当路由具有子路由时,带查询的路由才会失败

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' =&

由于2.1.4不推荐使用查询路由,我将按如下方式路由到我的博客:

        '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库
  • 再次运行应用程序
我安装了2.1.5dev,它解决了这个问题。想确定它是否是一个bug,所以用2.1.4再次尝试,问题仍然得到了解决。这就是我的结论。缓存可能是一件奇怪的事情


编辑过早得出(错误的)结论。启动了Zend Studio 10,现在又出现了错误。我认为Zend Studio 10正在还原一些文件(并非所有文件,因为查询路由被标记为不推荐使用)。不过,考虑到这个问题,只需要找到一种方法来告诉ZDEStudio 10使用2.1.4。谢谢

我无法在本地复制,在视图中使用
,并且跟随链接不会给出404。也许我遗漏了什么:-/你的评论让我想到了另一个我忘了提到的问题。像这样使用URL视图帮助器(带有查询选项)对我来说不起作用。它回显“/blog”,忽略查询。我最后使用字符串连接添加了查询,但忘记了它。奇怪,您确定您正在以相同的方式构造它,并且查询包含在第三个参数中吗?也许复制/粘贴我的测试。似乎其他力量在某处对url帮助程序起作用,使其也无法按预期工作。这是一个明显的问题,但您是否尝试过更新ZF2以确保其同步。我将您的评论粘贴到测试中,并进行了回应
。只是再次删除了整个Zend目录并下载了一个新的,同样的问题。我的头脑感到困惑:(这个应用程序是建立在以前版本(我认为是2.1)的框架应用程序之上的),可能是配置问题吗?结果是一个奇怪的缓存问题,我发布了我所做的,最终解决了这个问题,作为一个答案,以防有人遇到同样的问题,尽管我不知道为什么它会起作用。非常感谢您的帮助!:)