Ich benutze Laravel 5.1. Ich habe zwei ModelleWie eloquent verwenden, um Datensätze basierend auf Tabellenspalte und Anzahl der hasMany-Beziehung zurückgeben
articles
authors
Ich möchte Artikel finden, die veröffentlicht wurden oder mehr als zwei Autoren haben. Was ist der einfachste Weg, dies eloquent zu tun?
$pub_articles = Articles::where('published',1)->get(); //get articles that are published
Meine Vermutung ist, so etwas wie
$articles = Articles::where('published',1)
->orWhere(Articles->authors::count(),'>',2);
In SQL es möglicherweise auf diese Weise getan werden könnte
select a.id, a.published from articles a inner join authors au on a.id = au.article_id where a.published = 1 group by a.id, a.published having count(*) > 2
Sie haben eine viele zu viele Beziehung hier, da ich rate, ein Autor kann auch mehr als einen Artikel veröffentlichen. Haben Sie eine Referenztabelle eingerichtet (etwas, articles_authors' genannt)? –
Sie haben Recht. Ich habe im Moment nicht darüber nachgedacht, dass ich versucht habe, verschiedene Abschnitte eloquenter und fragender Tabellen mit Beziehungen einzukreisen. Dies ist von Grund auf neu, es gibt im Moment keine Tabelle articles_authors. –