Laravel:如何将此Sql语句转换为Eloquent或Query Builder

时间:2017-12-14 23:15:13

标签: php mysql laravel laravel-5.4 laravel-eloquent

如何将此Sql语句转换为Eloquent或查询生成器

我有4张桌子;

Jobs
Stores
Users
Store_User

每个商店都有多个作业,而商店和用户通过store_user表具有ManyToMany关系。我想获取用户所分配的商店的所有作业。

通过store_user表将用户分配到一个或多个商店。并且多个工作可以属于商店。

我需要能够使用$user->jobs或其他可以根据他/她分配的商店获取属于该用户的作业列表的内容。

这是SQL语句。我在PDO中使用。

  SELECT * FROM jobs 
      INNER JOIN store_user 
      INNER JOIN stores 
      WHERE stores.id = store_user.store_id 
      AND store_user.store_id = jobs.store_id 
      AND store_user.user_id = 2

1 个答案:

答案 0 :(得分:0)

你可以试试这个。

$jobs = DB::table('jobs')
            ->join('store_user','store_user.store_id','=','jobs.store_id')
            ->join('stores','stores.id','=','store_user.store_id')
            ->where('store_user.user_id', '=' ,2)
            ->get();