首先,我几周前就开始学习Laravel了,如果我在解释我的问题时没有用正确的词,我很抱歉。
我正在尝试编写一些API来检索我的数据库中的所有帖子和帖子的信息,我想检索与每个帖子相关的用户信息(如用户名,id等)。
用户模型:
public function post()
{ return $this->hasMany(Post::class); }
帖子模型:
public function user()
{ return $this->belongsTo(User::class); }
然后在我的PostResource中,我尝试从DB返回帖子的数据
帖子资源:
public function toArray($request)
{
return [
'id' => $this->id,
'user_id' => $this->user_id,
'user_info' => HERE_I_WANT_USER[USERNAME,ID ETC.]
'body' => $this->name
];
}
在我的PostController中,我有这个函数,它返回我的集合:
public function show() {
return PostResource::collection ( Post::get() );
}
因此,由于"user_id“的值,每个帖子都链接到每个作者。
这里是我的问题:实现这一目标的步骤是什么?
我已经对Laravel Doc "https://laravel.com/docs/5.5/eloquent-resources#conditional-relationships“进行了修改,并执行了与之前相同的步骤,但我无法检索任何数据,因为我的用户信息返回为空。
我想更好地了解这些步骤是什么。
发布于 2018-06-08 03:52:55
您只需将其命名为Post模型的一部分。类似于下面的内容:
return [
'id' => $this->id,
'user_id' => $this->user_id,
'user_info' => $this->user
'body' => $this->name
];
我假设$this
是一个后期模型。如果不是,那么您将希望找到它并使用它,就像$post->user
一样。此外,该方法的名称将是您的关系函数的任何名称(没有括号),所以如果这一点发生变化,您必须更新它。最后,这将返回一个用户模型,因此您可以像普通模型($post->user->username
或其他任何模型)一样与它交互。
https://stackoverflow.com/questions/50749054
复制相似问题