2016-09-29 3 views
0

Ich habe eine Liste-Funktion, mit der Benutzer bestimmte Artikel zu personalisierten Listen hinzufügen können. Wenn ich mehr als einen Artikel derselben Liste hinzufüge. Die Liste wird im Dropdown-Menü dupliziert.Laravel: doppelte Einträge in Foreach-Anweisung

Beispiel:

enter image description here

Je mehr Artikel i auf die spezifische Liste hinzufügen. so dupliziert es.

Datenbanktabellen

list   | id | person_id | name  | description 
       | 1 15   | Test List | null 

data_list_ref | id | list_id | data_uid 
       | 1 | 1   | 9b888e1e9e 
       | 2 | 1   | jZ-mAtgh 

Abfrage

$lists = DB::table('list') 
    ->leftJoin('data_ref_list', 'data_ref_list.list_id', '=', 'list.id') 
    ->select('list.id', 'list.name', 'data_ref_list.data_uid') 
    ->where('person_id', Auth::user()->person_id) 
    ->get(); 

Blade-Implementierung

$ rekord> Taste ist die aktuelle 'Artikel'

@foreach($lists as $list) 
    @if($list->data_uid === $record->key) 
    // show the checked list 
    // user's cant add the same article twice to a specific list 
    @else 
    // show the user's other lists 
    @endif 
@endforeach 
+0

Was dd (Listen) produzieren? – zloter

+0

@zloter es produziert 2 Objekte aus der gleichen Liste –

+0

@WesMurray kannst du bitte hinzufügen -> groupBy ('list.id') und versuche es erneut. –

Antwort

-1

Versuchen Sie es mit Eloquent im Browser angezeigt werden: Beziehungen.

Erstellen Sie 2 Modelle https://laravel.com/docs/5.3/eloquent#defining-models Eins für "list" und eins für data_list_ref.

Im Modell „Liste“, um eine Beziehung erstellen mit „data_list_ref“ https://laravel.com/docs/5.3/eloquent-relationships#defining-relationships

das Modell in der Steuerung ist wie diese

use App\List; 

Nun, wenn Sie die Daten aus „Liste“ zu bekommen und auch von „data_list_ref“ Sie es wie diese

nennen
$list = List::where('person_id', Auth::user()->person_id)->get(); 

Dies ist Laravel die Möglichkeit, Daten zu bekommen.