TP5.1多对多关联添加查询条件

前提:需要做RBAC模型权限设计,涉及到角色表(role)、权限表(rule)、角色权限表(role_rule),使用的是tp5.1,想要用tp自带的模型多对多关联查询。

在RoleModel中定义了多对多关联:

    //多对多关联
    public function rules()
    {
        return $this->belongsToMany('Rule','\\app\\admin\\model\\RoleRule','rule_id','role_id');
    }

 在控制器中查询:

$roles = $this->RoleModel->where('id',$role_id)->find();
$role_rules = $roles->rules
var_dump($role_rules);

但是有个问题,我需要判断这个权限可不可用,即'status'=1的条件,手册上写的有预处理,with()闭包添加查询条件,但是对多对多没有效果,是一对多的解决方法。

解决结果:

直接在`$roles->rules`后面加查询条件即可:

$role_rules = $roles_detail->rules->where('status','=',1);

 

你可能感兴趣的:(php,thinkphp)