Я также ищу лучший способ сделать это в зависимости от моего примера, который я собираюсь подробно описать.
По сути, мой контроллер выводит имя выбранной категории (из панели навигации), а через область видимости я вывожу категорию как объект. Затем через отношения 1:М я проношу все статьи этой категории. И хорошо, что это заканчивается показом
Моя проблема в том, что я упорядочиваю их по идентификатору в порядке возрастания. И, будучи статьей, она сначала показывает мне самую старую. Мне нужно было бы упорядочить их в порядке убывания, чтобы сначала показывались самые новые.
public function searchCategoria($nombre){
$categoria = Categoria::searchCategoria($nombre)->first();
$articulos = $categoria->articulos()->paginate(5);
$articulos->each(function($articulos){
$articulos->categoria;
$articulos->imagen;
});
dd($articulos);
return view('front/index')->with("articulos",$articulos);
}
Это результат того, что dd $articles
LengthAwarePaginator {#249 ▼
#total: 1
#lastPage: 1
#items: Collection {#250 ▼
#items: array:1 [▼
0 => Articulo {#252 ▶}
]
}
#perPage: 5
#currentPage: 1
#path: "http://emap.net/categorias/Noticias"
#query: []
#fragment: null
#pageName: "page"
}
При моем небольшом опыте работы с PHP и более в Laravel я еще не использовал какой-либо метод упорядочения. Но мне интересно узнать, есть ли лучшее решение, orderBy в отношении внутри модели или что-то в этом роде. Потому что, по крайней мере, в Java сортировка всегда является последним средством.
Другой, который пришел мне в голову, — это выбрать категорию, получить ее идентификатор и найти все статьи с помощью where и orderBy. Я бы не стал использовать отношения, это было бы более практично, но я не знаю, насколько это правильно
Принимая во внимание, что у вас уже есть коллекция, я бы использовал метод
sortByDesc()
(применимый к коллекциям) с датой или желаемым полем перед применением нумерации страниц, однако на данный момент у меня нет возможности проверить это, и я не не помните, является ли это уже коллекцией или все еще запросом в этот момент.Коллекция:
Конструктор запросов: