Ich benutze Laravel 5.4, um Aufgaben zurückzugeben, die eine Person erstellt hat oder verwaltet.Wie mehrere eloquente Beziehungen zusammenführen?
Der Code ist wie folgt:
public function tasks()
{
$creator = $this->morphMany('App\Task', 'created_by');
$manager = $this->morphMany('App\Task', 'managed_by');
}
Diese Funktion erwartet wird Illuminate\Database\Eloquent\Relations\Relation
ein Objekt vom Typ zurückzukehren.
Ich habe versucht, diese beiden Versuche, aber keiner von ihnen gibt den gewünschten Typ:
// using merge:
$task1 = collect([$creator]);
$task2 = collect([$manager]);
return $task1->merge($task2); // it returns an empty collection.
2. Versuch mit Query Builder:
return Task::
where([
['created_by_type', '=', 'App\Person'],
['created_by_id', '=', $this->id]
])
->orwhere([
['managed_by_type', '=', 'App\Person'],
['managed_by_id', '=', $this->id]
])->get();
// returns the correct data but not as an object of Illuminate\Database\Eloquent\Relations\Relation
Ist es möglich, diese beiden Beziehungen zu verschmelzen und das Rück die Ergebnis als Illuminate\Database\Eloquent\Relations\Relation
Typ?
Aus welchem Grund benötigen Sie die zurückgegebene Typrelation? –
zu viele Gründe, sie alle hier aufzulisten. – Warrio