首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Symfony2:如何在CLI脚本中设置主机/基本url

Symfony2:如何在CLI脚本中设置主机/基本url
EN

Stack Overflow用户
提问于 2012-03-01 00:53:15
回答 3查看 14.7K关注 0票数 19

我目前正在编写一个时事通讯工具,因此必须在通过cron调用的CLI脚本中生成绝对URL。

遗憾的是,Symfony CLI命令对我的主机/ base_url一无所知,因此路由器会使用错误的base_url生成绝对url。它总是使用http://localhost作为基础。

有没有办法告诉路由器正确的base_url?

我的代码:

代码语言:javascript
复制
$this->container->get('router')->generate($route, $parameters, true);
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-03-01 02:14:42

你可以这样做:

代码语言:javascript
复制
$host = $this->getContainer()->getParameter('host');
$this->getContainer()->get('router')->getContext()->setHost($host);

类似地,您可以设置baseurl和scheme:

代码语言:javascript
复制
$this->getContainer()->get('router')->getContext()->setScheme('https');
$this->getContainer()->get('router')->getContext()->setBaseUrl('/web');
票数 28
EN

Stack Overflow用户

发布于 2014-10-06 23:36:26

从2.1开始,您可以配置路由器的默认参数,这可能是最好的方法。CLI脚本将使用以下默认参数,但web请求将覆盖它们:

代码语言:javascript
复制
# app/config/parameters.yml
parameters:
    router.request_context.host: example.org
    router.request_context.scheme: https
    router.request_context.base_url: my/path

有关更多详细信息,请参阅How to Generate URLs and Send Emails from the Console

票数 15
EN

Stack Overflow用户

发布于 2014-03-18 18:09:42

$host = $this->container->getParameter('host'); $this->container->get('router')->getContext()->setHost($host);

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9503250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档