2016-06-26 1 views
0

전 Laravel Eloquent 게임을 처음 접했고 다른 데이터베이스에서 설정된 동적 변수를 사용하여 검색어를 만들려고 노력 중입니다.간략한 검색어 중첩

이라는 테이블이 하나 있습니다. 사용자는 기사에 대한 기사와 정보를 저장할 수 있습니다. 사용자는 여러 기사를 가질 수 있고 사용자와 연결된 잡지 (표 : magazine)의 기사를 그룹화 할 수 있습니다. 각 기사는 여러 잡지와 연관 될 수 있습니다.

특정 잡지의 모든 기사의 article_id를 가져온 다음 article_id 배열을 사용하여 에서 모든 정보의 배열을 가져 오는 쿼리를 작성하려고합니다. article_id에 해당하는 문서

도와주세요!

EDIT 1 : 초보자를위한 의견에 감사드립니다. 이전에이 질문에 대한 대답이 있었다고 생각한다면, 적절한 용어를 찾아 보시기 바랍니다.

내가 사용하려고 쿼리

했다 :

$mygazineQuery = (new UserMygazineArticles())->where('mygazine_id', $mygazineSearch); 
foreach ($MygazineQuery AS $key => $val) { 
    $MygazineQuery[$key] = (array)$val; 
} 
$codes = array_column($MygazineQuery, 'article_id'); 
$articles = Articles::whereIn('id', $codes)->get(); 

**Table UserMygazineArticles** 
`id` int(11) NOT NULL AUTO_INCREMENT, 
    `articles_id` int(11) NOT NULL, 
    `user_id` int(11) NOT NULL, 
    `mygazine_id` text NOT NULL, 
    `saved` datetime NOT NULL, 
    PRIMARY KEY (`id`) 
+0

정확하게 시도해 볼 수 있습니까? –

+0

사람을 기쁘게 해주세요. 백만 분의 일이나 이와 비슷한 질문에 답해 주었고 다른 사람들도 했으므로 최근 답변을 확인하고 같은 논리를 따르십시오. –

+0

@AchrafKhouadja 올바른 검색어를 추천 해 줄 수 있습니까? 나는 옳은 것을 찾고 있는지 잘 모르겠다. –

답변

0

웅변하면 함께 테이블을 조인 할 수 있습니다. 이것은 테스트되지 않았으며 테이블이 어떻게 보이는지에 대한 가정에 기반을두고 있습니다.

$query = \DB::table('articles')->select("articles.*"); 
$query->join('user_articles_magazine', 'articles.id', '=', 'user_articles_magazine.articles_id'); 
$query->join('magazine', 'magazine.id', '=', 'user_articles_magazine.magazine_id'); 
$query->where('magazine.id', $magazineId); 
return $query->get(); 
+0

이것은 나에게 갈 방향을주었습니다! 정말 고마워! –