拉拉威尔雄辩的关系查询


Laravel eloquent relation query

我想检索用户的风险类别

风险表

id
risk
category_id

风险用户表

id
risk_id
user_id

风险类别

id
category

为了检索风险类别效果良好,在我的模型中我这样做:

class Risk extends Eloquent{
    protected $table = 'risks';
    public $timestamps = false;
    public function users()
    {
        return $this->belongsToMany('User');
    }
    public function category() 
    {
        return $this->belongsTo('RiskCategory');
    }
}

但当涉及到检索特定用户的所有风险类别时,我很吃力。

我会这样做:

用户模型

class User extends Eloquent{    
    public function risks(){
        return $this->belongsToMany('Risk');
    }
}

然后,您可以使用Eager Loading获得所有风险的类别。

查询

User::find(1)->risks()->with('category')->get();

由于我没有你所有的代码和数据库,我无法测试它,但理论上它应该可以工作;)如果没有,请给我留言。