2017-12-20 4 views
0

Ich habe eine Tabelle note mit id, note, type_id, about_id. Hier bezieht sich die type_id auf den anderen Typ wie task(601), discussion (602), images (603), usw. Und about_id bezieht sich auf die ID der respektierten Typ Tabelle.Bedingte Laravel Eloquenz-Beziehung

$note = Notes::with('tasks')->with('discussion')->with('images')->get(); 

Dies ergab Notizen mit allen ->with() Tabellenwert. Wie kann ich die Werte der zugehörigen Tabelle gemäß der type_id erhalten. Ich habe versucht

$note=Notes::where('deleted_at', null); 
$note=$note->WhereHas('tasks', function($q) use($note) 
{ 
    $note->Where('type_id',601); 
})->get(); 

Ist es möglich, nur verwandte Tabellen Wert mit eloquent zu bekommen.

+0

Ich denke, Sie sollten –

+0

„erhalten nur verknüpfte Tabellen Wert“ join bevorzugen .. nicht sicher, was das bedeutet – lagbox

+0

@lagbox Ich meine, Werte aus der Tabelle nach 'type_id' erhalten. Wenn 601 Werte von Aufgabe erhält, wenn 602 von Diskussion usw. kommen. –

Antwort

0

Mit Use($note) unnötig, diese entfernen und verwenden $q statt

$note = Notes::where('deleted_at', null) 
    ->whereHas('tasks', function($q){ 
     $q->where('type_id',601); 
    })->get(); 

Auch ->with('tasks') aufnehmen, wenn Sie wollen alle im Zusammenhang tasks