Laravel查询生成器左联接

时间:2019-05-20 08:59:26

标签: laravel query-builder

有人可以告诉我,为什么我不能使用左联接从部分表中选择部分。我想要一个表中的教师列表,我能够访问教师表中的所有数据,但是我无法使用左联接看到部分。 教师表具有section_id列,该列应访问section列中的sections表中的数据。

现在,当我尝试使用{{$ teacher-> section}}来获取视图中的数据时,它给出了错误。

public function listteachers(Request $request)
{
  $teachers = DB::table('teachers')
  ->select('teachers.*')
  ->leftjoin('sections', 'teachers.section_id', '=', 'sections.id')
  ->orderBy('pass_exp', 'ASC')
  ->get();
return view('teachers.list',compact('teachers'));
}

2 个答案:

答案 0 :(得分:2)

您需要从查询的sections表中选择所需的列。

例如:

$teachers = DB::table('teachers')
    ->select('teachers.*', DB::raw('sections.name as section_name'))
    ->leftJoin('sections', 'teachers.section_id', '=', 'sections.id')
    ->orderBy('pass_exp', 'ASC')
    ->get();

答案 1 :(得分:1)

将代码更改为以下

  $teachers = DB::table('teachers')
        ->select('teachers.*','sections.name as section_name')
        ->leftJoin('sections', 'teachers.section_id', '=', 'sections.id')
        ->orderBy('pass_exp', 'ASC')
       ->get();