Bonjour,

Voila je rencontre un petit problème avec mon code. J'ai suivi le tuto pour pour uploader des images sur mon projet symfony, tout se déroule pour le mieux, l'upload se fait correctement, le fichier est bien dans le dossier précisé mais lorsque je veux afficher celle-ci dans une vue twig j'ai une erreur :
Cannot use object of type Symfony\Component\HttpFoundation\File\File as array . Je passe bien l'entité dans le contrôleur.

Ce que je fais

Décrivez ici votre code ou ce que vous cherchez à faire

{% extends "layout.html.twig" %}
{% block content %}

    <h3>Le {{ advert.date|date('d/m/Y') }}</h3>
    <div class="well">
        <h4>Information : </h4>
        <p> Adresse : {{ advert.user.address }}</p>
        <p> Nombre d'enfants : {{ advert.nbchild }}</p>
        <p> Contact : {{ advert.user.email }} / {{ advert.user.phone }}</p>
        <h4> Description : </h4>
        <p> {{advert.content}} </p>
        <img src="{{asset(advert.file)}}">
    </div>
<a href="{{path('editadvert')}}" >Editer</a>
<a href="{{path('deleteadvert', {id:advert.id})}}">Supprimer</a>
<a href="{{path('planningsub', {id:advert.planning.id})}}">Inscription planning</a>

{% endblock %}

Ce que j'obtiens

J'obtiens une erreur apparemment sur cette ligne.

// if absolute or begins with /, we're done        if ($this->isAbsoluteUrl($versionedPath) || ($versionedPath && '/' === $versionedPath[0])) {            return $versionedPath;        }

4 réponses


yanis-git
Réponse acceptée

Donc j'imagine que tu dois faire :

{{ asset(advert.file.pathname) }}

Qu'est ce que tu as dans advert.file ?
Essaye un var_dump dans ton controller ou un {{ dump(advert.file) }} dans ton twig. Donne nous le résultat de l'un de ces deux dump.

J'ai un objet de type File. Le voici :

File {#1587 ▼
  path: "adverts"
  filename: "avatar1600.png"
  basename: "avatar1600.png"
  pathname: "adverts\avatar1600.png"
  extension: "png"
  realPath: "C:\wamp64\www\Project\web\adverts\avatar1600.png"
  aTime: 2017-07-25 17:03:42
  mTime: 2017-07-25 17:03:42
  cTime: 2017-07-25 17:03:42
  inode: 0
  size: 101177
  perms: 0100666
  owner: 0
  group: 0
  type: "file"
  writable: true
  readable: true
  executable: false
  file: true
  dir: false
  link: false
  linkTarget: "C:\wamp64\www\Project\web\adverts\avatar1600.png"
}

Parfait :D Merci pour ta réponse