我目前的情况是我的某个模型与用户模型使用'belongsTo'关系。
在'文章'模型中:
public function author()
{
return $this->belongsTo('User');
}
现在我在视图中这样做,这似乎有效,但我觉得我在做我不应该做的逻辑。如果我需要在另一个视图中再次使用它,那么我需要重新创建逻辑。
@if($article->author)
{{ $article->author->username }}
@else
[deleted]
@endif
那么解决这种情况的最佳方法是什么?
答案 0 :(得分:1)
你的观点完全没问题。我没有看到任何错误。但是,您可能会遇到N + 1
问题。如果您不急于加载作者关系,Laravel将在您每次尝试访问视图中的作者关系时运行查询。例如,$article->author->username
每次要检索用户名时都会运行查询。
@if($article->author)
{{ $article->author->username }}
@else
为避免N + 1
问题,您可以急切加载关系。
例如:
$article = Article::with('author')->find(1);
更多信息: