Попробуйте
$events->orderBy('start_date', 'asc')->get()
Таким образом, ваш foreach будет выглядеть следующим образом:
@foreach($events->orderBy('start_date', 'asc')->get() as $event)
Примечание , если вы заказываете в своем контроллере, тогда используйте:
@foreach($events as $event)
И ваш последний фрагмент (в зависимости от того, где вы заказали):
@if(!empty($events) && $events->count() > 0)
@foreach($events as $event)
@if($event->is_published)
<div class="event-row">
<div style="display: table-cell; width: 20%;">
@if($event->uploads->count() > 0)
<img src="{!! $event->uploads->reverse()->first()->url !!}" alt="" title="" width="150"
height="150">
@endif
</div>
<div style="display: table-cell; width: 80%; vertical-align: top;">
<div>
<h3 style="margin-top: 3px; margin-bottom: 3px;">{!! $event->name !!}</h3><br/>
@if($event->start_time > 0)
<small style="font-size: 14px;">
{!! $event->start_time !!} - {!! $event->end_time !!}
</small>
@endif
<p style="margin-top: 6px; margin-bottom: 3px;">{!! $event->description !!}</p>
</div>
</div>
</div>
@endif
@endforeach
@else
Sorry, there are no events.
@endif
Предполагается, что ваш контроллер выглядит так:
use App\Models\General\Event;
....
class EventsController extends \Illuminate\Routing\Controller
{
public function index()
{
return view('events', [
'events' => Event::orderBy('start_date', 'asc')->get()
]);
}
}