Templates 在laravel中从视图中删除关系逻辑

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 }} @

我目前的情况是,我的一个模型与用户模型使用“belongsTo”关系

在“文章”模型中:

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);
更多信息:


谢谢你的回答!很高兴知道我至少做了一些正确的事情,有时很难说。谢谢你提供的关于快速加载的提示,从现在起我一定会确保这一点。