Maison >développement back-end >tutoriel php >Comment éviter l'erreur « Essayer d'obtenir la propriété d'un non-objet » dans Laravel 5 ?

Comment éviter l'erreur « Essayer d'obtenir la propriété d'un non-objet » dans Laravel 5 ?

Susan Sarandon
Susan Sarandonoriginal
2024-11-24 16:16:40544parcourir

How to Avoid

É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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn