Laravel-按升序和降序排列记录

时间:2018-05-20 07:36:07

标签: php laravel laravel-5

我的控制器中有一个创建方法

public function create()
{
$image = PropertyUser::where('user_id', '=', Auth::user()->id)->get();
foreach($image as $property)
{
    $id = $property->property_id;
}
$image_main = Image::where('property_id', $id)->get();
return view('settings.photos', ['image_array' => $image_main]);
}

这是我的photos.blade文件

<form name="asc" action="{{route("settings.photos")}}" method="post" class="text-center">
    @csrf
    <input type="submit"  value="Ascending " class="settings-photos-header2 text-center"/>  |
</form><form name="dec" action="{{route("settings.photos")}}" method="post"  class="text-center">
    @csrf
    <input type="submit"  value= " Descending" class="settings-photos-header2 text-center"/>
</form>
<h2 class="settings-photos-header2 text-center">Photo Gallery</h2>
@foreach ($image_array as $images)
    <div class="image-warp"><img src="{{$images->filename}}"
                                 style="width:100px;height:100px;"><br/><span style="color: #1b1e21">{{$images->description}}</span>
    </form>
    </div>
    @endforeach

问题 - 如何让asc按钮按升序排序图像,des按降序排序,有没有办法将它连接到我的控制器,或者有没有办法按升序和降序对它们进行排序其他方式?

1 个答案:

答案 0 :(得分:1)

有很多方法可以解决排序问题,但是当您设置页面时,让我告诉您对记录进行排序的方式。创建指向settings.photos路径

的其他操作
public function settings_photos($property_id) {

  $form = Input::get('submit');
  $orderBy = $form == "Ascending" ? "asc" : "desc";

  # Fetch Images in of Specific Property 
  $list_of_images = Image::where('property_id', $property_id) 
  # Order by Asc/Desc 
  ->sortBy('id', $orderBy)->get(); 

  return view('settings.photos', ['image_array' => $list_of_images]); } 

现在添加Image->id以通过表单传递您的控制器操作

https://stackoverflow.com/questions/50432659/laravel-arranging-records-in-ascending-and-descending-order#
<form name="asc" action="{{route("settings.photos")}}" method="post" class="text-center">

  @csrf
    
  <input type="image_id" value="{{$id}}" />
  <input type="submit" value="Ascending " class="settings-photos-header2 text-center"/>  |
</form>

<form name="dec" action="{{route("settings.photos")}}" method="post"  class="text-center">
    @csrf
  <input type="image_id" value="{{$id}}" />
  <input type="submit" value="Descending" class="settings-photos-header2 text-center"/>
</form>

现在对之前的控制器代码进行一些更改

public function create()
{
$image = PropertyUser::where('user_id', '=', Auth::user()->id)->get();
foreach($image as $property)
{
    $id = $property->property_id;
}
$image_main = Image::where('property_id', $id)->get();
return view('settings.photos', ['image_array' => $image_main, 'id' => $id]);
}

正如我告诉过你的,即使是Ajax也有各种方法对记录进行排序,但我建议你使用你的代码示例。我也没有优化代码。

如果您有任何疑问,请与我们联系。 感谢