Éviter d'"essayer d'obtenir la propriété d'un non-objet" dans Laravel 5
Dans Laravel 5, il est crucial de vérifier le type de retour de vos requêtes pour éviter l'erreur "Essayer d'obtenir la propriété d'un non-objet".
Dans votre cas, la lame la syntaxe {{ $article->postedBy->name }} suppose que $article->postedBy renvoie un objet avec une propriété name. Cependant, si votre requête renvoie un tableau au lieu d'un objet, cette erreur se produit.
Pour résoudre ce problème, supprimez la valeur de $article->postedBy dans votre modèle Blade en utilisant {{ dd($article ->postedBy) }} ou dans le code de votre contrôleur en utilisant dump($article->postedBy). Cela révélera s'il s'agit d'un objet ou d'un tableau.
S'il s'agit d'un tableau, accédez simplement aux éléments du tableau en utilisant [ et ] au lieu de ->. Par exemple, {{ $article->postedBy['name'] }} accéderait à la clé du tableau de noms.
Voici un extrait de code mis à jour :
// Controller public function showArticle($slug) { // Ensure your query returns an object $article = News::where('slug', $slug)->first(); if ($article) { // Check if the article exists return view('article', compact('article')); } // Handle the case where no article was found }
En suivant ces étapes , vous pouvez éviter l'erreur « Essayer d'obtenir la propriété d'un non-objet » et vous assurer que vous accédez correctement à vos données.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!