Please have a look at the following code:
$msgs = Message::where(function($query) use ($start,$end){
$query->whereBetween('created_at', array($start, $end));
})->orderBy('created_at', 'DESC');
$first = $msgs->first()->created_at;
$ids = $msgs->lists('id');
What I'm trying to do is to get the latest date of the query result set and get all the ids from the result at the same time. But the code doesn't work because the $msgs was changed by the $msgs->first() function. I'm wondering if there is a way to let me get the first element of the query result without affecting the whole result set? Thanks