Laravel version:7.0
I am going to get list from Guest
model.
guests table: id, name, status, created_at, updated_at
$guests = Guest::orderby("status")->get();
Here is messages
table.
$messages table: id, message, from_id, from_type, to_id, to_type
from_type
, to_type
can be either guest or user.
If I get latest message with lazy loading, I can get as following.
foreach($guests as $guest)
{
$lastMessage = Message::where(function($query) use($guest){
$query->where("from_id", $guest->id);
$query->where("from_type", "guest");
})
->orWhere(function($query) use($guest){
$query->where("to_id", $guest->id);
$query->where("to_type", "guest");
})->latest()->first();
}
However, I know this is crazy. How can I get this with Eager loading?
Can anyone please give me some instruction?