В моем приложении Laravel 4 моя таблица users
имеет столбец votes
. Я бы хотел найти рейтинг текущего пользователя. Я уже могу получить 10 лучших пользователей с User::orderBy('votes', 'desc')->take(10)
, но я бы хотел отобразить рейтинг текущего пользователя ниже этого списка. В идеале, это бы что-то вроде:Получение ранга текущей строки с Laravel
Auth::user()->rank('orderBy', 'votes', 'desc');
Я получаю вошедшего в систему пользователя, я прошу его ранга предполагая Приказываю таблицу пользователей по голосам.
Кто-нибудь знает, есть ли способ сделать это с помощью Красноречивого?
Элегантный. Однако подобное хакерское решение. Я отправлю запрос функции, лучше использовать собственные возможности базы данных. – BenjaminRH
Фактически, '$ this', похоже, не может получить доступ к полям модели внутри методов scope, тогда как обычный метод может. – BenjaminRH
Это работает для меня. Вам нужно сделать это через 'Auth :: user()', так что вы на самом деле вызываете 'rank' на этом объекте пользователей. Я только что протестировал это, и кажется, что он не возвращает счет. Я обновил свой ответ, вместо этого использую его через getter. Я тестировал и могу подтвердить, что он работает. –