Laravel-Abfrage, um Ergebnisse mit mindestens einem Element eines Arrays zu erhalten?
Ich habeposts
undpostWriters
Tabellen mit Eins-zu-Viele-Beziehungen. (Ich habe auchwriters
Tabelle)
eder Beitrag wurde von mehreren Autoren in Zusammenarbeit verfass
Ich möchte die ersten 20 Beiträge erhalten, die von mindestens einem Autor verfasst wurden, dem ich folge.
Zum Beispiel die Autoren, denen ich folge:
$arrayOfWriterIds_IFollow = [3, 5, 123, 45, ..., 3456] // total 100 ids
Die Abfrage
$posts = Post::where(
array( 'postWriters' => function($l) {
$l->whereIn('writer_id', $arrayOfWriterIds_IFollow); // or array(3, 5) for 2 writers..
})
)
->orderBy('submitTimestamp', 'desc')
->take(20)
->get();
Die Abfrage funktioniert nicht.
Ist dieser Ansatz angemessen oder sollte ich eine dedizierte Tabelle hinzufügen, um meine Ergebnisse zu bewerten?