Comment obtenir des actifs img url dans Symfony contrôleur
Je suis en utilisant actifs dans Symfony 2.7.10 et je veux générer une url de l'image dans le contrôleur.
Dans symfony config.fichier yml, j'ai ajouté le paramètre suivant:
framework:
assets:
version: '311nk2'
version_format: '%%s?v=%%s'
base_path: /bundles/myBundleName
Dans twig la génération d'une url fonctionne ok, donc avec la suite de rameau code:
{{ asset('images/logo.png') }}
Il génère:
/bundles/myBundleName/images/logo.png?v=311nk2
Maintenant, je veux générer la même url dans un contrôleur, comment est-ce possible?
OriginalL'auteur Tom | 2016-03-22
Vous devez vous connecter pour publier un commentaire.
Tout droit, voyant que cette réponse obtenir un peu d'attention sur le moment, je tiens à souligner deux choses:
Comment gérer les actifs url Symfony 2.8.36 utiliser le Conteneur de service:
Comment gérer les actifs url Symfony 3.4.6 à l'aide de contenants de service et de la nouvelle Autowire configuration:
et
Comment gérer les actifs de l'url pour Symfony 4.0 uniquement avec Autowire configuration:
Pour Symfony 4 il y a quelques choses à savoir:
composer require symfony/asset
.Réponse originale à cette question que de 22.03.2016
En utilisant le service d'assistance appelé
templating.helper.assets
pourrait faire l'affaire.Essayez quelque chose comme ceci:
assets.packages
soins à donner plus de détails, parce que je crois que vous avez tort. Si vous vous reportez à la v3.4, vous pouvez clairement voir que je accéder au service à partir du conteneur par l'ID de service. Tout le code que j'ai fourni est testé. Comme pour le Autowire de la même exaple, il se résolu automatiquement, même si je ne suis pas entièrement sûr si c'est la même instance, je devrais vérifier sur qui.
J'ai essayé le même code et eu des erreurs parce que le service n'était pas disponible. Un coup d'oeil à la base de code montre qu'il n'est pas public : github.com/symfony/framework-bundle/blob/master/Resources/...
OriginalL'auteur Artamiel
si vous êtes à l'aide de symfony 3.4+ avec auto-câblage vous pouvez DI les Paquets instance et l'utiliser.
par exemple pour dire l'action d'un contrôleur de fonction:
OriginalL'auteur runawaycoin
Mais dans symfony 3. Ça ne marche plus.
Dans symfony 3 utilisation
Ex.
OriginalL'auteur B. Godoak