【问题标题】:symfony2 router generator context problemssymfony2 路由器生成器上下文问题
【发布时间】:2016-04-19 14:53:28
【问题描述】:

symfony 的路由器生成器有问题 当我跑步时 dump($this->container->get('router'));exit; 在控制器上,我的路由器上下文是这样的

#context: RequestContext {#306 ▼
-baseUrl: "/my-project/web/app_dev.php"
-pathInfo: "/accueil"
-method: "GET"
-host: "localhost"
-scheme: "http"
-httpPort: 82
-httpsPort: 443
-queryString: ""
-parameters: array:1 [▶]

} 但是相同的代码但在邮件服务上我得到了这个#context: Symfony\Component\Routing\RequestContext {#312 -baseUrl: "" -pathInfo: "/accueil" -method: "GET" -host: "localhost" -scheme: "http" -httpPort: 80 -httpsPort: 443 -queryString: "" -parameters: [] }

我在获得类似的网址后发现了这个问题 "http://localhost/bundleRoute/myRoute/7" 而不是 "http://localhost/my-project/web/app_dev.php/bundleRoute/myRoute/7"

谢谢。

【问题讨论】:

  • 我认为这是因为我在 symfony 命令期间调用此服务所以没有请求上下文所以 symfony 路由器将创建一个新的 ` $this->context = $context ?: new RequestContext ();` 在路由器类上,因此获取空上下文是逻辑。我一直在为我的问题寻找解决方案,以便在运行控制台命令时生成 url
  • 您好,我的解决方案是:调用路由器服务后获取上下文,然后将 baseUrl 设置为上下文,然后将新修改的上下文设置为路由器,最后调用生成方法,希望对您有所帮助。如果我犯了错误或有其他更好的解决方案,请告诉我。对不起我的英语不好。

标签: symfony router


【解决方案1】:

您可以在从命令行执行部分应用程序时为应用程序配置请求上下文:http://symfony.com/doc/current/cookbook/console/sending_emails.html#configuring-the-request-context-globally

【讨论】:

    猜你喜欢
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 2021-07-09
    • 2016-03-10
    • 2021-06-09
    • 2023-03-12
    • 2011-11-20
    • 1970-01-01
    相关资源
    最近更新 更多