【发布时间】:2018-01-08 09:50:52
【问题描述】:
试图想出其他方法来从我的 API 中获取我需要的东西。
我正在使用 Laravel Spark,并有一个查询如下:
$team = Team::with('users')->find($id);
Team 模型上的用户关系是:
public function users()
{
return $this->belongsToMany(
'App\User', 'team_users', 'team_id', 'user_id'
)->withPivot('role')->orderBy('current_active_team', 'DESC');
}
我目前正在按用户表上的字段排序,但我也想按用户模型上的方法排序:
public function queueLength()
{
// returns an integer for the users queue length
}
要返回此数据,我目前正在我的查询下添加此数据:
foreach ($team->users as $user) {
$user->queueLength = $user->queueLength();
}
有没有一种方法可以让 $team->users 按他们的 queueLength 排序?
【问题讨论】:
-
将队列长度作为属性添加到模型中? See this question
-
queueLength 是多少?如果它来自其他数据库表,你可以做一个连接来允许它排序。