У меня есть метод создания в моем контроллере
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 в порядке убывания, есть ли способ подключить его к моему контроллеру или есть способ отсортировать их в порядке возрастания и убывания с помощью любых других средств?
Последний пользователь, который вошел в систему. Идентификатор свойства, а не только последний идентификатор свойства.






Есть много способов решить проблему сортировки, но, поскольку вы настроили свою страницу, позвольте мне рассказать вам, как вы можете сортировать записи. Создайте другое действие, указывающее на ваш маршрут 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, но я предлагаю вам использовать пример кода. Я тоже не оптимизировал код.
Дайте мне знать, если у вас возникнут вопросы. Спасибо
Я хочу отсортировать все изображения, а не одно, все изображения, а не конкретное изображение, если для каждого вывода 2 или более изображений, кнопка должна их отсортировать
Что вы имеете в виду под всеми изображениями, а не под одним? Как вы упомянули запрос, с помощью которого вы получаете изображения в конкретном свойстве, следующий запрос вернет отсортированные изображения в свойстве. $ image_main = Изображение :: где ('property_id', $ image_id) -> sortBy ('id', $ orderBy) -> get (); Где $ image_id - это Property-> id согласно вашему образцу кода ..
Да, свойство, которое я мог бы иметь 2 или более изображений
Хорошо, я предполагаю, что у Property есть изображения, и вы хотите получить все изображения, кроме свойства, в порядке ASC / DESC. Затем выполните следующий запрос: общедоступная функция settings_photos ($ property_id) {$ form = Input :: get ('submit'); $ orderBy = $ form == "По возрастанию"? «по возрастанию»: «по убыванию»; # Получить изображения в определенном свойстве $ list_of_images = Image :: where ('property_id', $ property_id) # Сортировать по возрастанию / убыванию -> sortBy ('id', $ orderBy) -> get (); return view ('settings.photos', ['image_array' => $ list_of_images]); }
@nourman, это было полезно, но, пожалуйста, не могли бы вы добавить его к ответу, который вы мне дали выше, для большей ясности, просто отредактируйте и добавьте свой комментарий, спасибо
@IrueneAdokiye конечно
Просто боковой комментарий: что-то выглядит не так в том, что ваш
foreach(image as property)....выбирает последнийproperty_id. Это намеренно?