如何在Laravel中进行连接选择?

时间:2014-05-17 21:12:35

标签: php laravel-4

我现在得到的是我检索所有用户然后循环每个用户并检查是否有项目,否则如果在我们检索项目名称时没有关系,我们将收到错误< / p>

$users = User::all();


foreach($users as $user)
{
  if($user->item)
  {
     echo $user->item->name;
  }

}

我的问题是如何选择项目表中具有关系的所有用户记录?在laravel-4中使用雄辩的模型?

我问这个因为这里http://laravel.com/docs/eloquent - 没有使用连接的例子,只是在选择后加入它们,但这不好,因为我们选择所有行而不是只有那些有关系的行,也是我们不必检查项目是否存在,因为我们已经知道该项目确实存在...

2 个答案:

答案 0 :(得分:2)

您只需要:

$users = User::has('item')->get();

这里的第一个例子http://laravel.com/docs/eloquent#querying-relations

答案 1 :(得分:0)

http://laravel.com/docs/queries#joins

试试这个

DB::table('users')
            ->join('item', 'users.id', '=', 'item.user_id')
            ->select('item.name')
            ->get();