Templates 在laravel中从视图中删除关系逻辑
我目前的情况是,我的一个模型与用户模型使用“belongsTo”关系 在“文章”模型中:Templates 在laravel中从视图中删除关系逻辑,templates,laravel,laravel-4,relationship,blade,Templates,Laravel,Laravel 4,Relationship,Blade,我目前的情况是,我的一个模型与用户模型使用“belongsTo”关系 在“文章”模型中: public function author() { return $this->belongsTo('User'); } 现在我在视图中这样做,这似乎是可行的,但我觉得我在做我不应该做的逻辑。如果我需要在另一个视图中再次使用它,那么我需要重新创建逻辑 @if($article->author) {{ $article->author->username }} @
public function author()
{
return $this->belongsTo('User');
}
现在我在视图中这样做,这似乎是可行的,但我觉得我在做我不应该做的逻辑。如果我需要在另一个视图中再次使用它,那么我需要重新创建逻辑
@if($article->author)
{{ $article->author->username }}
@else
[deleted]
@endif
那么,处理这种情况的最佳方法是什么呢?您的观点完全正确。我不认为这有什么错。但是,您可能遇到
N+1
问题。如果您不急于加载作者关系,Laravel将在每次尝试访问视图中的作者关系时运行查询。例如,$article->author->username
将在每次要检索用户名时运行查询
@if($article->author)
{{ $article->author->username }}
@else
要避免N+1
问题,可以立即加载关系
例如:
$article = Article::with('author')->find(1);
更多信息:
谢谢你的回答!很高兴知道我至少做了一些正确的事情,有时很难说。谢谢你提供的关于快速加载的提示,从现在起我一定会确保这一点。