2016-06-02 13 views
1

Ich habe einige Probleme mit Daten aus meiner Beziehung. Ich brauche die Tags einiger Domains.Abrufen von Daten aus der "belongToMany" -Beziehung in Laravel

$domains = Domains::where('customer_id', Auth::user()->customers_id)->get(); 

Es gibt alle Domänen, die ich brauche. Auf meinem Domänenmodell habe ich diese Zugehörigkeit zu meiner Pivot-Tabelle.

public function tags() { 
    return $this->belongsToMany('App\Models\Tags_Domains', 'domain_tag', 'domains_id', 'tags_id'); 
} 

konnte ich damit alle Daten aus meiner Beziehung erhalten:

dd($domains[0]->tags); 

Das bin ich alle Daten habe ich aber nur für die erste Domain wollte. Aber ich möchte dies für jede Domain, um dieses neue Array an meine Blade-Vorlage zu übergeben. Ich habe viele Dinge ausprobiert, aber ich konnte es nicht funktionieren lassen. ($ collection error, versuchen, richtig von Nicht-Objekt zu bekommen ...)

Kann mir jemand da helfen?


Controller-Code:

$domains = Domains::where('customer_id', Auth::user()->customers_id)->get(); 
    return view('defaultLayout.domains.tagsdelete', [ 
     'domains' => $domains 
    ]); 
+0

, warum Sie nicht tun Senden Sie einfach '$ domains' an Ihr Blade und zeigen Sie dann für jede Domain die zugehörigen Tags an? '@foreach ($ domains als $ domain) $ domain-> tags @ endforeach' – zorx

+0

Ursache Ich bekomme das: Nicht definierte Eigenschaft: Illuminate \ Database \ Eloquent \ Collection :: $ tags – WellNo

+0

Zeigen Sie uns Ihren Controller-Code. – Codearts

Antwort

2

Dies liegt daran, dass Sie $ Domains [0] und Sie die erste Domain. Sie müssen durch sie Schleife:

foreach($domains as $domain) { 
    foreach($domain->tags as $tag) { 
     var_dump($tag); 
    } 
} 

Edit: Wenn Sie die Tags aus Ihrer Sicht hier brauchen, ist, wie:

@foreach($domains as $domain) 
    <p>{{ $domain->name }}</p> //where name could be any field that $domain has 
    @foreach($domain->tags as $tag) 
    <p>{{ $tag->name }}</p> //where name could be any field that $tag has 
    @endforeach 
@endforeach 

Froh, dass ich nützlich war :)

+0

Ich möchte den Namen der Tags, ID der Tags und nur die Domänennamen meiner Ansicht übergeben. - mein Controller Code ist in meiner Frage und ich habe immer noch nicht etwas aus meiner Sicht getan. Ihr Code hat soweit funktioniert, aber ich muss die Daten in einem Array speichern und dieses Array übergeben. Außerhalb meiner Foreach bekomme ich nur eine einzige Datenfolge. Nicht alles wie wenn ich var_dump $ tag innerhalb meiner Schleife bin – WellNo

+0

Ich werde dein Update versuchen, gib mir eine Sekunde :) – WellNo

+0

ja, ich tat es auch genau wie du in deinem neuen Update :) funktioniert perfekt. Ich bin noch neu in Laravel, danke für deine Unterstützung! :) – WellNo

Verwandte Themen