我想显示来自用户的帖子。但是,我收到一条错误消息: 试图获取非对象的属性“帖子”
User.php
public function posts()
{
return $this->hasMany(Post::class, 'author_id', 'id');
}
Post.php
public function author()
{
return $this->belongsTo(User::class, 'author_id', 'id');
}
web.php
Route::get('test', function () {
$user = User::find(5);
return $user->posts;
});
答案 0 :(得分:0)
Route::get('test', function () {
$user = User::where('id', 5)->with('posts')->get();
return $user;
});
答案 1 :(得分:0)
作者是一个单独的模型吗?
首先,您需要创建适当的迁移,以便在您的帖子表中将user_id
引用为外键。
您应该具有与此类似的迁移方法:
Schema::table('posts', function (Blueprint $table) {
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');
});
您的模型可以是这样的:
class Post extends Model
{
/**
* Get the user record associated with the post.
*/
public function user()
{
return $this->hasOne('App\User');
}
}
现在您应该可以致电$post->user
,因为您的用例我不知道作者是谁,但是您应该可以适应我的祝福,祝您好运。