看似this的典型联接:
$users = DB::table('users')
->join('contacts', 'users.id', '=', 'contacts.user_id')
->join('orders', 'users.id', '=', 'orders.user_id')
->select('users.*', 'contacts.phone', 'orders.price')
->get();
在laravel docs here中有详细记载,如下所示:
$ this join(string $ table,string $ 1,string $ operator = null,string $ two = null,string $ type ='inner',bool $ where = false)
但是,我不知道这种联接记录在哪里:
DB::table('users')
->join('contacts', function ($join) {
$join->on('users.id', '=', 'contacts.user_id')->orOn(...);
})
->get();
例如,selectSub在其documentation中显然有一个闭包:
Builder|Builder selectSub(Closure|Builder|string $query, string $as)
背景:尝试将语法指出here
答案 0 :(得分:0)
转到this link
然后在文档中搜索Advanced join clauses
或向下滚动一下,您将看到该标题
答案 1 :(得分:0)
如果与您的表存在关系,则可以使用whereHas
方法。
$stuff = User::whereHas('contacts', function ($query) {
$query->where('user_id', '=', $id);
})->get()