2017-09-12 4 views
0

내 앱에 사용자 및 기사 모델이 있습니다. 그들 사이의 관계는 간단하다 :Laravel 5, 웅변 모델에 대한 관계 만 가져 오기

//article.php 
use Taggable; 

public function user() 
{ 
    return $this->belongsTo('App\User'); 
} 

기사 ('XYZ'문자열 태그 모든 기사를 반환) 제 :: withAnyTags 같은 다양한 방법으로 날을 제공 Taggable lib 디렉토리를 사용합니다. 이제는 기사를 게시 한 모든 사용자에게 'xyz'태그가 추가되었습니다. 나는 이것을 두 줄로하는 법을 알고 있지만, 뭔가 옳지 않다는 것을 알려줍니다. 이상적으로 나는 sth 같이하고 싶다 :

$users = Article::withAnyTags('xyz')->with('user')->select('user'); --pseudocode 

웅변에서 이것을하는 것이 가능합니까?

사이드 노트 : 나는 DB :: table로 이것을 할 수 있다고 매듭을 짓지 만, 이것은 나를위한 선택 사항이 아니다. 내 의사 코드의 끝에는 "-> get()"이 없다는 점에 유의하십시오. 그것은 웅변적인 쿼리에서만 작동하는 lib로 사용자의 결과 집합을 매김하고 있기 때문에 그렇습니다.

User::whereHas('articles', function ($query) { 
    $query->withAnyTags('xyz'); 

})->paginate(); 

을 아니면 폐쇄에 태그의 변수를 전달해야 할 경우 당신은 할 수 :

답변

2

당신은 whereHas() 사용할 수

$tag = 'xyz'; 

User::whereHas('articles', function ($query) use($tag) { 
    $query->withAnyTags($tag); 

})->paginate(); 

희망이 도움이!