2014-07-12 4 views
0

현재 내 모델 중 하나에서 사용자 모델과 'belongsTo'관계를 사용하는 경우가 있습니다. '기사'모델 내에서laravel의 뷰에서 관계 논리 제거

:

public function author() 
{ 
    return $this->belongsTo('User'); 
} 

지금 내가 작동하는 것 같다 뷰,이 일을 해요,하지만 난 안 로직을하고있어 같은 느낌. 이 뷰를 다른 뷰에서 다시 사용해야 할 경우 논리를 다시 작성해야합니다.

@if($article->author) 
    {{ $article->author->username }} 
@else 
    [deleted] 
@endif 

그래서이 상황에 접근하는 가장 좋은 방법은 무엇입니까?

답변

1

보기가 완벽합니다. 나는 그 점을 잘못 보지 못했다. 그러나 N + 1 문제가 발생할 수 있습니다. 저자 관계를 열망하지 않는다면 Laravel은 사용자가보기에 관계에 액세스하려고 할 때마다 쿼리를 실행합니다. 예를 들어 $article->author->username은 사용자 이름을 검색 할 때마다 쿼리를 실행합니다.

@if($article->author) 
    {{ $article->author->username }} 
@else 

N + 1 문제를 피하려면 열심히 관계를로드 할 수 있습니다. 예를 들어

:

$article = Article::with('author')->find(1); 

더 많은 정보 : 답변

http://laravel.com/docs/eloquent#eager-loading

+0

감사합니다! 나는 적어도 때때로 옳은 말을하기가 어렵다는 것을 아는 것이 좋다. 열망하는로드에 대한 팁을 보내 주셔서 감사 드리며, 앞으로도이 사실을 확실히 확인할 것입니다. – Kureigu