Une tentative de faire écho au nom d'un utilisateur à partir d'un article de presse est échoué, résultant en l'erreur suivante:
ErrorException: Trying to get property of non-object
Les nouvelles de la classe étendent le modèle { fonction publique publiée par () { return $ this-> appartenance ('app \ user'); } } L'utilisateur de classe étend le modèle { protégé $ remplissant = ['name', ...]; }
class News extends Model { public function postedBy() { return $this->belongsTo('App\User'); } } class User extends Model { protected $fillable = ['name', ...]; }schéma
Table: utilisateurs avec une colonne 'name'
modèle de lame
class News extends Model { public function postedBy() { return $this->belongsTo('App\User'); } } class User extends Model { protected $fillable = ['name', ...]; }{{$ Article-> Publié-> name}}
explication
L'erreur se produit parce que la question dans le contrôleur (news: where ('slug' Array, pas un objet. Lorsque vous essayez d'accéder à -> Publié sur un tableau, la propriété n'est pas reconnue et l'erreur est lancée.class News extends Model { public function postedBy() { return $this->belongsTo('App\User'); } } class User extends Model { protected $fillable = ['name', ...]; }pour résoudre le problème, vous devez convertir le tableau en un objet avant d'accéder à la propriété -> Publié. Cela peut être fait en utilisant la méthode FindBysLug sur le modèle d'actualités au lieu de FirstorFail ():
Cela vous permettra d'accéder à la propriété -> Publié de l'objet et d'afficher le nom de l'utilisateur dans le modèle de lame.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3