Вы должны передать две переменные вашему контроллеру
1) SortBy : столбец, по которому вы хотите выполнить сортировку
2) SortOrder : порядок сортировки по возрастанию или по убыванию
Вы можете передать эти двапеременные для запроса параметров строки запроса:
например: http://yourdomain.com/products?sortBy=name&sortOrder=-1
получить эти параметры запроса в вашем контроллере
public function sort_products(Request $request){
$id, $sortBy , $sortOrder ;
$id=$request->input('id');
// check request has sortBy
if($request->has('sortBy')){
$sortBy=$request->query('sortBy');
}else{
//request has no sort by , set default sort by
$sortBy='name';
}
// check request has sortOrder
if($request->has('sortOrder')){
$sortOrder=$request->query('sortOrder');
}else{
//request has no sort order , set default sort order
$sortOrder='asc';
}
$images = Image::where('property_id',$id)->orderBy($sortBy,$sortOrder)->get();
return view('yourview',compact('images','sortBy','sortOrder'));
}
в виде блэйдаиспользуйте значки шрифта Aweasome для отображения стрелки вверх и вниз для порядка сортировки:
http://fontawesome.io/icons/
@if( count($images)>0 )
<table>
<thead>
<tr>
<th>FileName
@if($sortBy=='name')
@if($sortOrder=='asc')
<span><i class="fas fa-sort-up"></i></span>
@else
<span><i class="fas fa-sort-down"></i></span>
@endif
@endif
</th>
<th>Description
@if($sortBy=='description')
@if($sortOrder=='asc')
<span><i class="fas fa-sort-up"></i></span>
@else
<span><i class="fas fa-sort-down"></i></span>
@endif
@endif
</th>
</tr>
</thead>
<tbody>
@foreach ($images as $image)
<tr>
<td>
<img src="{{$image->filename}}" style="width:100px;height:100px;">
</td>
<td>
<span style="color: #1b1e21">{{$image->description}}</span>
</td>
</tr>
@endforeach
</tbody>
</table>
@else
<p>NO IMAGES FOUND.</p>
@endif
для получения дополнительной информации: https://laravel.com/docs/5.6/requests