Всем доброго времени.
Помогите, пожалуйста, вот с каким вопросом. На странице списка всех пользователей есть наборы (Новые, Рейтинг, Онлайн, Популярные и Группы). Нужно, чтобы первоначальный список (например, Все — бывший Новые) сортировался по дате регистрации но не возрастанию или убыванию, а рандомно.
Как я понял, мне нужно что-то сделать с этой конструкцией:
'filter' => function ($model, $dset) { return $model->orderBy('i.date_reg', 'desc');
И вроде бы все просто — нужно заменить desc на rand, но система не знает, что такое rand.
Посмотрел виджет списка контента, там рандом реализован черз запрос к БД $model->joinQuery("(SELECT FLOOR(RAND() * (SELECT MAX(id) FROM cms_{$table})) AS id)", 'x', 'i.id >= x.id');. Но там еще куча всего в этой функции, которое я не совсем понимаю.
Как правильно сделать рандомную сортировку? Благодарю.
А заодно вопрос: как вывести список пользователей по набору Рейтинг или Популярные только для одной группы пользователей, например Новые? Благодарю!
