2017-11-03 19 views
0

사용자, 카테고리 및 게시 모델이 있습니다. 게시물은 많은 사용자와 많은 카테고리에 속합니다. 사용자와 카테고리는 관련이 없습니다. user_id와 category_id를 저장하는 사용자 지정 피벗 테이블과 해당 테이블에 대한 모델 CategoryBlock을 만들었습니다. 사용자가 차단하지 않은 모든 게시물을 어떻게 얻을 수 있습니까?Laravel : 어떤 카테고리가 차단되지 않은 모든 게시물을 표시하는 방법?

+0

이 게시물 사용자에 속하고, 사용자가 많은 게시물을 가지고있을 것입니다 될 수 없습니다 게시물을 얻을 모든 블록 범주를 얻을 것입니다. 반면에 게시물은 카테고리에 속하며 카테고리에는 많은 게시물이 있습니다. –

+0

첫 번째 장소에서 관계가 잘못되었거나, 많은 사용자가 게시물에 속해 있습니다. 많은 사용자가 많은 게시물을 게시 할 때 많은 관계가 post_user 피벗을 가지고 있어야합니다. – DorienCragen

+0

@DorienCragen 한 사용자가 여러 게시물을 가지고 있습니다. 그것이 많은 관계에 있다면, 내가 원하지 않는 한 게시물에 많은 저자가있을 것입니다. –

답변

0

가장 쉬운 방법은이 컬렉션

편집에

$block = DB::table('category_block')->where('user_id', Auth::user()->id)->get()->pluck(['category_id'])->toArray(); 

$posts = Post::whereNotIn('category_id', $block)->get(); 
+0

그것이 내가 필요한 것입니다. 감사. 그러나 지금은 단지 "비 객체의 속성을 얻으려고 시도하는 중"이라는 에러를 보여줍니다. 모든 사용자 ID를 얻으 려 할 때 –

+0

ok 여기는 사용자와 세션을 로그인했다고 가정하기 때문에'Auth :: user() -> id' 실제 유효한 user_id – DorienCragen