2017-11-03 4 views
0

Ich habe Modelle Benutzer, Kategorie und Post. Post gehört vielen Benutzern und vielen Kategorien. Benutzer und Kategorie sind nicht verwandt. Ich habe eine benutzerdefinierte Pivot-Tabelle erstellt, in der ich user_id und category_id sowie ein CategoryBlock-Modell für diese Tabelle speichere. Wie bekomme ich alle Beiträge welche Kategorie der Benutzer nicht blockierte?Laravel: Wie alle Beiträge angezeigt werden, welche Kategorie nicht blockiert ist?

+0

sein kann es seinen Beitrag Benutzer gehört und Benutzer viel Post hat. Auf der anderen Seite gehört Post zu Kategorie und Kategorie hat viele Post. –

+0

Ihre Beziehungen sind auf den ersten Platz falsch, Post gehört zu vielen Benutzern ist nur, wenn Benutzer zu vielen Post Dies ist viele zu viele Beziehung sollte post_user Pivot haben – DorienCragen

+0

@DorienCragen Ein Benutzer hat viele Beiträge. Wenn es eine Beziehung von vielen zu vielen wäre, gäbe es viele Autoren in einem Beitrag, die ich nicht haben möchte. –

Antwort

0

einfachste Weg ist es, alle Block Kategorien zu bekommen und dann Post bekommen, wo nicht in dieser Sammlung

EDIT

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

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

Das ist die Sache, die ich brauchte. Vielen Dank. Aber nur jetzt zeigt es Fehler "Versuch, Eigenschaft von Nicht-Objekt zu bekommen", wenn versucht wird, alle Benutzer-ID zu bekommen –

+0

ok das ist, weil ich nehme an, Sie haben Benutzer hier angemeldet und Sitzung, müssen Sie 'Auth :: user() ändern -> id 'ist tatsächlich gültig user_id – DorienCragen

Verwandte Themen