ThinkPHP 多对多关联模型排序查询,要怎么设置排序字段?
有用户表 user
和 角色表role
及关联表user_role
,两者为多对多关系,那么如何通过关联表中字段(如:id
)来进行排序呢?
因为解析成 sql 语句时,关联表都被重命名为pivot
,所以只需要在模型中关系定义时加上 ->order('pivot.id')
即可,代码如下:
<?php
namespace app\admin\model;
use think\Model;
class User extends Model
{
protected $name = 'user';
public function roles()
{
return $this->belongsToMany('Role','user_role','role_id','user_id')->order('pivot.id');
}
}