【发布时间】:2020-04-13 14:57:48
【问题描述】:
我遇到了一个问题,我必须根据模型的关系数据对模型集合进行排序/排序。
我的设置是这样的:
型号:
User、Team、TeamUser、Role
TeamUser 模型是一个数据透视模型/表(包含user_id 和team_id。
如果值得一提,我还使用spatie/laravel-permissions 作为角色。
当我想按role.name 对团队中的用户进行排序时,我将如何进行?
我说的是Team 模型中的users() 关系(请参阅下面的代码示例)。
一些用户拥有team-leader 角色,大多数用户拥有team-seller 角色。我试过做一个普通的..->sortBy('role.name'),但这似乎不起作用。如果有人可以帮助我,请提前致谢。
User.php
/**
* Team relation
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function team()
{
return $this->belongsToMany('App\Team', 'team_users', 'user_id', 'team_id');
}
Team.php
/**
* User relation
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function users()
{
return $this->belongsToMany('App\User', 'team_users', 'team_id', 'user_id')->withTimestamps();
}
【问题讨论】:
标签: php laravel eloquent relationship