0

由于 2.1.4 Query 路由已被弃用,我正在路由到我的博客,如下所示:

        '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',
                        ),
                    ),
                ),
            ),
        ),

我正在使用 Segment 子路由,但 Literal 子路由也存在同样的问题。

有什么办法可以保留页面查询和子路由?

4

1 回答 1

0

这解决了。如果有人遇到同样的问题,这对我有用。

  • 清除所有缓存(EdpSuperluminal、APC 等)
  • 删除 Zend 库
  • 在没有 Zend 库的情况下运行您的应用程序(当然会产生大量错误,但这对我来说似乎至关重要)
  • 重新安装 Zend 库
  • 再次运行您的应用程序

我安装了 2.1.5dev 并解决了这个问题。想确定它是否是一个错误,所以用 2.1.4 再次尝试,问题仍然得到解决。所以这是我的结论。缓存可能是一件奇怪的事情。

编辑过早地跳到(错误的)结论。启动 Zend Studio 10,现在又出问题了。我认为 Zend Studio 10 正在恢复一些文件(不是所有文件,因为 Query 路由确实被标记为已弃用)。尽管如此,考虑到这个问题已经解决,只需要找到一种方法来告诉 Zend Studio 10 使用 2.1.4。谢谢!

于 2013-03-28T23:17:52.717 回答