【问题标题】:How to set host for routes in sonata admin?如何在奏鸣曲管理员中为路由设置主机?
【发布时间】:2019-12-21 21:52:43
【问题描述】:

如何让奏鸣曲始终使用根域作为它生成的 url? 我有一个站点,有些页面在根域上,有些在子域上。 我需要有 url 来编辑总是引用根域的帖子,即使链接在子域上。

<a href="{{ path('admin_prefix_post_post_edit', {id: post.id}) }}" rel="nofollow" target="_blank">Edit</a>

【问题讨论】:

    标签: symfony sonata-admin sonata symfony-sonata


    【解决方案1】:

    看来我可以解决奏鸣曲的问题 在 routing.yml 中添加奏鸣曲路由选项和默认值

    admin_area:
        resource: "@SonataAdminBundle/Resources/config/routing/sonata_admin.xml"
        prefix: /backoffice
        options:
            compiler_class: 'MyApp\Router\RouteCompiler'
        defaults:
            default_host: %router.request_context.host%
    
    _sonata_admin:
        resource: .
        type: sonata_admin
        prefix: /backoffice
        options:
            compiler_class: 'MyApp\Router\RouteCompiler'
        defaults:
            default_host: %router.request_context.host%
    

    router.request_context.host 是我的根域。

    路由编译器类如下:

    class RouteCompiler extends BaseRouteCompiler
    {
        public static function compile(Route $route)
        {
            if ($route->getHost() === "") {
                $route->setHost($route->getDefaults()['default_host']);
            }
            return parent::compile($route);
        }
    }
    

    当我在 twig url 函数中使用时,即使在 来自子域的页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-30
      • 2018-03-22
      • 2012-01-07
      • 1970-01-01
      • 2016-10-09
      • 1970-01-01
      相关资源
      最近更新 更多