Ich habe viele individuelle Modelle und ich möchte sie alle kombinieren, um die Vorteile von eifrigloading nutzen.Wie man mehrere individuelle eloquente Modelle als eine in Laravel und Eager Load Relation kombinieren kann
$match_query = "select * from feeds " .
"WHERE (user_id IN ($users_size)) " .
"OR (target_id IN ($slugs_size) AND feedable_type = 'review') " .
"ORDER BY created_at DESC LIMIT 5;";
//Query works fine and return 2 results
$results = DB::select($match_query, $consolidatedArray);
//to convert returned php standard obj to array
$results = json_decode(json_encode($results), True);
$all = [];
foreach($results as $result){
$x = new \App\Feed($result);
//I am able to get relation like this for single item
// $x->user;
$all[] = $x;
}
//but this thing is not working (i am trying to eager load)
$data = $all->with('user');
bekomme ich folgende Fehler
ErrorException in FeedsRepository.php line 67:
Trying to get property of non-object
Was ist die Lösung?
Warum Sie den DB-Klasse verwenden? Warum verwenden Sie nicht die erforderliche eloquente Klasse, zB 'SomeEloquenModel :: mit ('user') -> get();' – Steve
meine Abfrage ist zu kompliziert. Lemme fügen das auch in den Code ... – Eirtaza
Ich sehe es nicht so kompliziert ... Wie auch immer, es funktioniert nicht, da Sie die 'with()' Methode für ein Array aufrufen, nicht für die Elemente innerhalb es. – phaberest