1
votes

Laravel - Erreur lors du passage de l'objet utilisateur à afficher

J'obtiens toujours cette erreur lorsque je passe un objet utilisateur (lieu) via un contrôleur dans ma vue, j'ai essayé de l'encoder et de le décoder en vain. J'ai également essayé de trouver l'utilisateur dans la vue plutôt que dans le contrôleur en passant simplement l'identifiant de l'utilisateur, mais j'obtiens la même erreur? Les personnes répondant à d'autres questions semblent n'avoir aucun problème à le faire avec cette syntaxe ou similaire, est-ce que je fais quelque chose de mal?

venue {#247 â–¼
  #guard: "venue"
  #fillable: array:5 [â–¶]
  #hidden: array:2 [â–¶]
  #connection: "mysql"
  #table: "venues"
  #primaryKey: "id"
  #keyType: "int"
  +incrementing: true
  #with: []
  #withCount: []
  #perPage: 15
  +exists: true
  +wasRecentlyCreated: false
  #attributes: array:11 [â–¶]
  #original: array:11 [â–¶]
  #changes: []
  #casts: []
  #dates: []
  #dateFormat: null
  #appends: []
  #dispatchesEvents: []
  #observables: []
  #relations: []
  #touches: []
  +timestamps: true
  #visible: []
  #guarded: array:1 [â–¶]
  #rememberTokenName: "remember_token"
}

Contrôleur:

            <div class="venueName">
                <h4>{{ $venue->name }}</h4>
            </div>
<p>{{ $venue->addresse }}</p>
<p>{{ $venue->bio }}</p>
<img src="{{ url($venue->galleryOne) }}" alt="">
@foreach ($venue->item as $item)...

J'essaye d'y accéder dans des vues comme celle-ci:

public function index($venue)
    {
        $venue = \App\venue::findOrFail($venue);
        return view('index.venue')->with(['venue'=>$venue]);
    }

c'est le dd ($ venue):

htmlspecialchars() expects parameter 1 to be string, object given

Toute aide serait fantastique! Merci :)


8 commentaires

essayez dd ($ venue); dans la fonction d'index, au début


avez-vous un autre emplacement dans votre lame {{$ venue}} ?


Accédez-vous à d'autres propriétés ou variables? Pouvez-vous publier la vue entière?


J'ai ajouté le dd et toutes les façons dont j'accède à $ venue dans la vue, la vue est assez grande, donc je ne pouvais pas tout poster


@rargy quelle est votre propriété galleryOne est-ce une chaîne ou un objet?


Une mention également, le lieu modèle a-t-il un garde personnalisé? est-ce important?


Pouvez-vous ajouter la vue entière? Y compris le foreach. L'erreur peut se trouver n'importe où sur la page, mais elle ne semble pas être dans la partie que vous avez publiée.


@nakov c'est une chaîne


3 Réponses :


1
votes

L'un des éléments de l'un des objets est également un objet et le {{}} nécessite qu'une chaîne soit la variable à l'intérieur. Vérifiez tous les éléments renvoyés par les objets.


0 commentaires

1
votes

Merci à tous d'avoir compris que cela doit être le résultat d'un appel à une variable objet dans la vue. Solution: Certaines des variables étaient "NULL" qui est traité comme un objet et provoque l'erreur. J'ai changé les valeurs par défaut dans la base de données de NULL à une chaîne vide, et cela a bien fonctionné :).


0 commentaires

0
votes

Vous ajouterez la méthode get après la méthode findOrFail, s'il existe des données .... s'il n'existe pas de données ou null, vous devez contrôler si (vide ($ venue)) dans la vue

        $venue = \App\venue::findOrFail($venue)->get();
        return view('index.venue')->with(['venue'=>$venue]);



0 commentaires