3
我試圖根據有多少點的用戶來獲取排名表。Laravel得到一個關係列排序的模型集合
我的用戶模型(簡體):
namespace Gamify;
class User extends Model
{
protected $table = 'users';
public function points()
{
return $this->hasMany('Gamify\Point');
}
public function scopeMember($query)
{
return $query->where('role', '=', 'default');
}
}
而點模型是:
namespace Gamify;
class Point extends Model
{
protected $table = 'points';
protected $fillable = array(
'points',
'description'
);
public function user()
{
return $this->belongsTo('Gamify\User');
}
}
我想獲得與它的點的總和用戶的集合,通過有序這筆錢。
像這樣的東西(這個代碼只是一個樣機):
public static function getRanking($limitTopUsers = 10)
{
return User::member()->orderBy(sum('points'))->get();
}
我一直在玩User::with()
和範圍,我儘量不使用DB::raw()
。
任何人都可以幫助我嗎?提前致謝。
嗨@ nextt1,當我把這個代碼Laravel說:「調用一個成員函數的OrderBy()的字符串」。嚴...... –
試試這個新的代碼。 – nextt1
謝謝@ nextt1這是一個很好的起點,知道我會爲了得到我想要的排名而玩(命令DESC和需要的列。 –