Essayer d'obtenir la propriété de non-objet - Laravel 5
Je suis en train de echo le nom de l'utilisateur dans mon article et je suis de la ErrorException: Trying to get property of non-object
. Mes codes:
Modèles
1. News
class News extends Model
{
public function postedBy()
{
return $this->belongsTo('App\User');
}
protected $table = 'news';
protected $fillable = ['newsContent', 'newsTitle', 'postedBy'];
}
2. User
class User extends Model implements AuthenticatableContract,
AuthorizableContract,
CanResetPasswordContract
{
use Authenticatable, Authorizable, CanResetPassword;
protected $table = 'users';
protected $fillable = ['name', 'email', 'password'];
protected $hidden = ['password', 'remember_token'];
}
Schéma
table users
table news
Contrôleur
public function showArticle($slug)
{
$article = News::where('slug', $slug)->firstOrFail();
return view('article', compact('article'));
}
Lame
{{ $article->postedBy->name }}
Quand j'essaie de retirer le nom de la lame {{ $article->postedBy }}
il génère le id
mais lorsque j'essaie d'ajouter l' ->nom là, il dit Trying to get property of non-object
mais j'ai un champ name
dans ma table et un User
modèle. Ai-je raté quelque chose?
source d'informationauteur sorxrob
Vous devez vous connecter pour publier un commentaire.
Est votre requête retournant tableau ou d'un objet? Si vous videz, vous trouverez peut-être que c'est un tableau, et tous vous avez besoin est un accès au tableau ([]) au lieu d'un objet d'accès (->).
J'ai eu de travail en utilisant Jimmy Zoto la réponse de l'ajout d'un deuxième paramètre à mon
belongsTo
. Ici, il est:Tout d'abord, comme suggéré par Jimmy Zoto, mon code dans la lame de
$article->poster->name
à$article->poster['name']
. Suivante consiste à ajouter un second paramètre dans monbelongsTo
dereturn $this->belongsTo('App\User');
de retour$this->belongsTo('App\User', 'user_id');
dans lequeluser_id
est ma clé étrangère dans la table news.Merci à tous pour votre aide!
J'ai mis en place un
hasOne
relation dans ma classe parent, définis à la fois étrangères et locales de la clé, il a retourné un objet, mais les colonnes de l'enfant doit être consulté comme un tableau.c'est à dire
$parent->child['column']
Un peu déroutant.
Il arriver qu'après un certain temps, nous avons besoin pour exécuter
de nouveau pour générer une clé, cela a résolu mon problème ,