【发布时间】:2016-12-02 16:12:05
【问题描述】:
这些是关系:
评论模型
class Comment extends Model
{
/**
*
* The comment belongs to the post
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function post()
{
return $this->belongsTo('App\Post', 'post_id')->with('Post');
}
}
后模型
class Post extends Model
{
/**
*
* a post has many comments
*
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function comments()
{
return $this->hasMany('App\Comment');
}
然后尝试检查通过的内容:
$comment = Comment::findOrFail($id);
return Response()->json($comment);
}
只检索评论的东西,没有关系,我不明白,它不应该沿着评论急切加载帖子吗?
如果我从模型中删除 ->with('Post'); 并使用
$comment = Comment::findOrFail($id)->load('Post');
帖子已加载,但无论如何它都应该使用 Model 方法。
【问题讨论】:
-
不,我正在检索一条评论,并且只有一篇与评论相关联的帖子。我不需要任何 foreach。此外,正如我在主要问题中已经写的那样 $comment = Comment::findOrFail($id)->load('Post');随帖子返回评论。
-
好的,知道了。我认为如果您使用访问器创建虚拟字段,那么您可以轻松找到您的帖子。但是对于海量数据来说需要太多次。
标签: php laravel post load comments