我有一個一對多關係的用戶和推薦表。我試圖根據推薦計數與其他用戶相比獲得用戶的排名。我只能根據其轉診次數列出用戶。Laravel 5雄辯:我如何對db行進行排序並獲得排名?
$users = App\User::with('referrals')->get()->sortBy(function($user)
{return $user->referrals->count();});
但我不知道如何獲得排名或基於推薦計數排序行。
這是我的推薦表:
Schema::create('referrals',function(Blueprint $table){
$table->increments('id');
$table->bigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users');
$table->bigInteger('referral_id');
$table->timestamps();
});
因此,舉例來說,如果我在我的數據庫有此
user id 1 | 5 referrals
user id 2 | 10 referrals
user id 3 | 1 referral
我希望能夠得到用戶ID 2,這是軍銜1.
既然你已經整理數組,你知道這個數組中的第一個用戶擁有最轉介。所以他們將排名第一。不是那麼簡單嗎?你還需要什麼 ? – codegeek
我需要排名#表示用戶與其他用戶相比最多。我在用戶資料中顯示了這一點。所以像user-> rank =?但我不想創建排名欄。我想根據排序獲得特定用戶的排名。希望這是有道理的。 – joejoeso