sto*_*fln 19 php routing command-line-interface symfony
我目前正在编写新闻稿工具,因此必须在CLI脚本中生成绝对URL,该脚本通过cron调用.
不幸的是,Symfony CLI命令对我的host/base_url一无所知,因此路由器会生成带有错误base_url的绝对URL.它总是http://localhost用作基础.
有没有办法告诉路由器正确的base_url?
我的代码:
$this->container->get('router')->generate($route, $parameters, true);
Run Code Online (Sandbox Code Playgroud)
小智 28
你可以这样做:
$host = $this->getContainer()->getParameter('host');
$this->getContainer()->get('router')->getContext()->setHost($host);
Run Code Online (Sandbox Code Playgroud)
同样,您可以设置baseurl和scheme:
$this->getContainer()->get('router')->getContext()->setScheme('https');
$this->getContainer()->get('router')->getContext()->setBaseUrl('/web');
Run Code Online (Sandbox Code Playgroud)
Cor*_*liu 15
从2.1开始,您可以配置路由器的默认参数,这可能是最好的方法.CLI脚本将使用这些默认参数,但Web请求将覆盖它们:
# app/config/parameters.yml
parameters:
router.request_context.host: example.org
router.request_context.scheme: https
router.request_context.base_url: my/path
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参阅如何从控制台生成URL和发送电子邮件
| 归档时间: |
|
| 查看次数: |
13469 次 |
| 最近记录: |