Laravel: заказать mysql извлеченные данные по мутатору

На предыдущий вопрос Я (мы, потому что вы, ребята, помогли мне) сделал мутатор, чтобы добавить столбец к результатам, которые я получаю из базы данных.

Теперь моя проблема: как я могу упорядочить результаты по созданному атрибуту?

Вот оно:

public function getRatingAttribute()
{

return $this->reviews()
->selectRaw('AVG(reviews.rating) as aggregate')
->pluck('aggregate');

}

0

Решение

DB не может отсортировать его для вас, так как данные-мутаторы извлекаются после того, как основной SQL-запрос уже выполнен. Вам нужно отсортировать результаты в php, используя методы Collection, например,$my_results->sortByDesc('rating');

Если вам нужно использовать нумерацию страниц, то это большая проблема, и вам, вероятно, будет лучше использовать соединение, чем мутаторы для этого.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]