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

php – Symfony2:路由优先级

发布时间:2020-12-13 22:10:56 所属栏目:PHP教程 来源:网络整理
导读:是否有优先考虑Symfony2的路线? 我正在使用它看起来像这样的注释 控制器 //TestController.php/** * @Route("/test") */class TestController extends Controller{ /** * @Route("/a",name="test_a") */ .....//DummyController.php/** * @Route("/") */cla
是否有优先考虑Symfony2的路线?

我正在使用它看起来像这样的注释

控制器

//TestController.php

/**
 * @Route("/test")
 */
class TestController extends Controller
{
    /**
     * @Route("/a",name="test_a")
     */
   .....

//DummyController.php
/**
 * @Route("/")
 */
class DummyController extends Controller
{
    /**
      * @Route("/{varA}/{varB}",name="dummy_one")
      */
   .....

配置

//routing.yml

acme_bundle:
    resource: "@Acme/Controller"
    type:     annotation

目标

URL,Actual,Goal
/test/a,DummyController,TestController  //Wrong
/test/b,DummyController //Good

我如何强制TestController首先进行测试?

谢谢

解决方法

从您的示例中我可以假设您的虚拟和测试控制器位于同一个包中,如果是这种情况,那么您只需在routing.yml中单独列出该包中的控制器.您列出的顺序是他们将被检查的顺序.

acme_test:
    resource: "@Acme/Controller/TestController.php"
    type:     annotation

acme_dummy:
    resource: "@Acme/Controller/DummyController.php"
    type:     annotation

如果它们位于不同的包中,则首先列出包含测试控制器的包.

有关详细信息,请参阅symfony路由文档. http://symfony.com/doc/current/bundles/SensioFrameworkExtraBundle/annotations/routing.html#activation

(编辑:李大同)

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

    推荐文章
      热点阅读