php - Symfony 4 全局路由前缀

标签 php symfony symfony-routing symfony4

我在 Symfony 4 应用程序中找不到有关全局路由前缀的任何信息。唯一thing我发现正在用 @route 注释 Controller .但是我不使用注释,我需要所有 Controller 都具有相同的前缀。

现在我可以在 S3 中像这样在 app/config/routing.yml 中做到这一点文件:

app:
    resource: '@AppBundle/Controller/'
    type: annotation
    prefix: /foo

但是 S4 是无捆绑的,我不能这样做 - 我必须创建一个我不需要的捆绑包。

是否可以在 Symfony 4 中定义全局路由前缀,或者我最终会为每个根添加前缀/创建自定义路由加载器,特别是如果我在 YAML 中配置路由?

最佳答案

这适用于注释,为每个 Controller 提供“this/prefix”:

# file: config/routes/annotations.yaml

controllers:
    resource: ../../src/Controller/
    type: annotation
    prefix: this/prefix

然后对于导入的路由,'this/prefix' 被应用于下面的所有 FOSUserBundle 路由(是的,我测试了它)。
# file: config/routes.yaml

fos_user:
    resource: "@FOSUserBundle/Resources/config/routing/all.xml"
    prefix: this/prefix

如果您不使用注释,您应该能够导入单独的路由文件(可以导入更多),将前缀应用于资源中的所有内容。但是删除“@”符号并使用文件的相对路径。
'this/prefix' 的值可以配置为 服务容器参数 ,看这里:http://symfony.com/doc/current/routing/service_container_parameters.html

关于php - Symfony 4 全局路由前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48120939/

相关文章:

php - 如何告诉 symfony 加载我的自定义 routing.yml 配置

php - Symfony swift_mail : send to multiple address but only display one address per email

php - SQLSTATE[HY093] : error But i dont see why

javascript - 将 JavaScript 数组从 View 传递到 Laravel Controller

symfony - 在 Symfony2 中生成具有不同语言环境的 url

html - 短 if 内的原始 Twig 变量过滤器

php - Twig :无法覆盖包含文件中的 block

php - Symfony 3 路由 : No route found for "GET/user/add"

php - 如何使用 PHP/MYSQLI 更新数据库记录并与传递的变量保持在同一页面上

javascript - 无法通过 Shopware 6 中的 XmlHttpRequest 请求 PageController