如何在Inner join eloquent中添加连接

时间:2018-02-09 11:42:59

标签: laravel eloquent laravel-eloquent

我有一张桌子

MyModel.objects.annotate(day=RawSQL('date(timestamp)', ())).values('day').annotate(Avg('price')).order_by('day')

其他表格是

user_access_rights
user_id    access_right_id
1          1
1          2
1          3

一个用户可以拥有多个访问权限。它可以通过查询轻松完成。但我想知道Eloquent版本。

我写的access_rights ar_id access_right 1 add 2 update 3 delete 模型

User_access_right

它没有给我正确的结果,也没有从public function rights() { return $this->hasMany('App\User_access_right') } 表中获取access_right列。有人可以讲解释吗?

1 个答案:

答案 0 :(得分:0)

Users模型中写下这个:

public function access_rights(){
    return $this->belongsToMany('App\access_rights', 'user_access_rights', 'user_id', 'access_right_id');
}

在您的access_rights模型中添加以下内容:

public function user_rights(){
    return $this->belongsToMany('App\User', 'user_access_rights', 'access_right_id', 'user_id');
}

然后你可以像这样查询:

获取用户权限:Auth :: user() - > access_rights() - > get()