如何从控制台生成url
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.8,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
如何从控制台生成url
不幸的是,命令行上下文不知道您的VirtualHost或域名。这意味着如果您在控制台命令中生成绝对url,您可能会得到类似的结果http://localhost/foo/bar
这不是很有用。
要解决这个问题,您需要配置“请求上下文”,这是一种华丽的说法,表示您需要配置您的环境,以便它知道在生成URL时应该使用什么URL。
有两种配置请求上下文的方法:在应用程序级别和每个命令。
全局配置请求上下文
要配置请求上下文(URL生成器使用的上下文),可以重新定义它作为默认值使用的参数,以更改默认主机(localhost)和方案(http)。如果Symfony不在根目录中运行,还可以配置基本路径。ob娱乐下载
注意,这不会影响通过正常web请求生成的url,因为这些url将覆盖默认值。
- YAML
- XML
- PHP
1 2 3 4 5
# app / config / parameters.yml参数:router.request_context.host:“example.org”router.request_context.scheme:“https”router.request_context.base_url:“我的/路径”
配置每个命令的请求上下文
要在一个命令中更改它,只需从路由器
服务并覆盖其设置:
12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
/ / src / AppBundle /命令/ DemoCommand.php/ /……类DemoCommand扩展ContainerAwareCommand{受保护的函数执行(InputInterface$输入, OutputInterface$输出){$路由器=$这->getContainer ()->get (“路由器”);$上下文=$路由器->getContext ();$上下文->setHost (“example.com”);$上下文->setScheme (“https”);$上下文->setBaseUrl (“我的/路径”);$url=$路由器->生成(“路线名”,数组(“param-name”= >的参数值));/ /……}}
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。