2017-04-18 4 views
0

Ich benutze Laravel Paginierung für die Liste. Es gibt zwei Tabellen, sagen wir table1 & table2.Laravel Paginierung funktioniert nicht mit Join, wo die Bedingung

table2id ist Primärschlüssel & als Fremdschlüssel verwendet in table1t2_id

ich alle einzigartigen t2_id erhalten möchten, müssen aber is_deleted überprüfen, ist für diese ID in table2 nicht gesetzt.

Ich habe Funktion in meinem Modell geschrieben:

public function getDistinctIds() { 

    return DB::connection('pgsql') 
        ->table('table1 AS t1') 
        ->distinct() 
        ->select('t1.t2_id') 
        ->join('table2 AS t2', 't2.id', '=', 't1.t2_id') 
        ->where('t2.is_deleted', '!=', 1) 
        ->orWhereNull('t2.is_deleted') 
        ->paginate(3); 
} 

Diese Funktion gibt mir genaues Ergebnis. Aber es gibt ein Problem mit Seitenumbruch. Es gibt 12 Datensätze in table1getDistinctIds() gibt nur 4 Datensatz, so sollte es zwei Seiten sein, aber es zeigt 4 Seiten. Ich denke, die Paginierung berücksichtigt nicht die Bedingungen.

Bitte helfen Sie, danke im Voraus!

+0

Was die Tabelle getDistinctIDs ist die Abfrage Dump und auf den db laufen, müssen Sie wahrscheinlich einen LEFT JOIN oder Operator Vorrang verunstaltet WHERE Bedingungen – Mihai

+0

@Mihai getDistinctIDs das ist? Funktionsrückkehr im Modell. es gibt genaues Ergebnis, es gibt 4 Reihen zurück, also sollte es 2 Seiten geben, aber es zeigt stattdessen 4 Seiten Verbindungen an – Omi

Antwort

Verwandte Themen