scope метода, в первом фильтруются пол пользователя, наличие аватара и прочее, во втором сортировка по полям, id, имя, фамилия (в зависимости от того что пришло в request). Когда вывожу пользователей, с сортировкой по имени (orderBy('first_name', 'desc')), через paginate, некоторые пользователи дублируются на разных страницах. Если убрать orderBy — все нормально работает. В чем может быть проблема?
barryvdh/laravel-debugbar стоит? какой там запрос получается? скоупы желательно делать простыми, а не универсальными
да это не я делал, у меня задача убрать дублирование. Запрос вот такой вот выходит select * from `users` where `role_id` = ? and `avatar` is not null order by `first_name` desc
а на второй странице?
select * from `users` where `role_id` = ? and `avatar` is not null order by `first_name` desc limit 26 offset 25 тоже самое, только лимит и офсет накинуло, вроде все верно
ну тогда может у кого-то кириллицей написано, а кого латиницей? Сергей != Cергей. или пробел не видно. попробуй в БД напряму сделать этот запрос
В бд делаю 2 запроса с разными лимитами и офсетами (2 и 3 стр) и оно выводит мне такое же дублирование как и на сайте. Вообщем в бд много одинаковых имен было, добавил еще сортировку по id и перестало дублироваться.
а почему по имени? только имя заполняют? обычно показывают по ФИО
тут вопрос не ко мне, я хз чего оно так. Но штука прикольная, нужно будет запомнить. Спасибо за советы)
Обсуждают сегодня