我正在使用Symfony 2,我想从服务类生成绝对URL,而不是模板.我想要同样的事情
{{ asset('/path/to/my/asset') }}
Run Code Online (Sandbox Code Playgroud)
会在模板中返回.
这可能吗?
Cer*_*rad 15
看看:Symfony/Bundle/TwigBundle/Extension/AssetExtension
public function getAssetUrl($path, $packageName = null)
{
return $this->container->get('templating.helper.assets')->getUrl($path, $packageName);
}
Run Code Online (Sandbox Code Playgroud)
基本上,将templating.helper.assets注入您的服务然后调用getUrl.
这是Symfony 2.8简单而干净的方式:
services.yml:
arguments:
assets: "@templating.helper.assets"
Run Code Online (Sandbox Code Playgroud)
在服务中:
protected $assets;
public function __construct($assets)
{
$this->assets = $assets;
}
Run Code Online (Sandbox Code Playgroud)
然后你可以在服务的任何功能中使用它,如下所示:
$this->assets->getUrl('myurl');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5299 次 |
| 最近记录: |