Как создать URL ресурса из службы? - PullRequest
9 голосов
/ 07 февраля 2012

Я использую Symfony 2 и хочу сгенерировать абсолютный URL для ресурса из класса обслуживания, а не из шаблона. Я хотел бы то же самое, что

{{ asset('/path/to/my/asset') }}

вернется в шаблон.

Возможно ли это?

Ответы [ 2 ]

15 голосов
/ 07 февраля 2012

Взгляните на: Symfony / Bundle / TwigBundle / Extension / AssetExtension

public function getAssetUrl($path, $packageName = null)
{
    return $this->container->get('templating.helper.assets')->getUrl($path, $packageName);
}

По сути, добавьте templating.helper.assets в ваш сервис, затем вызовите getUrl.

6 голосов
/ 10 апреля 2016

Вот простой и понятный способ для Symfony 2.8:

services.yml:

arguments:
    assets: "@templating.helper.assets"

В сервисе:

protected $assets;

public function __construct($assets)
{
    $this->assets = $assets;
}

Тогда вы можете использовать егов любой функции сервиса, как это:

$this->assets->getUrl('myurl');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...