Laravel - расстановка записей в порядке возрастания и убывания - PullRequest
0 голосов
/ 20 мая 2018

У меня есть метод создания в моем контроллере

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 сортировала изображения по возрастанию?порядок и порядок в порядке убывания, есть ли способ подключить его к моему контроллеру, или есть способ отсортировать их в порядке возрастания и убывания любым другим способом?

1 Ответ

0 голосов
/ 20 мая 2018

Есть много способов решить проблему с сортировкой, но, поскольку вы настроили страницу, позвольте мне рассказать, как вы можете сортировать записи.Создайте еще одно действие, которое указывает на ваш 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, чтобы передать действие вашего контроллера формой

/11180761/laravel-rasstanovka-zapisei-v-poryadke-vozrastaniya-i-ubyvaniya
<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но я предлагаю вам использовать ваш пример кода.Я также не оптимизировал код.

Дайте мне знать, если у вас есть какие-либо вопросы.Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...