如何在laravel雄辩中加入三张桌子?

时间:2015-12-29 10:50:27

标签: sql laravel join eloquent blade

我有三张桌子:

consignee (id,name) , jobs(id,consignee_id), expenses(id,job_id)

在我的ExpensesController

public function index(){
        $expenses = \App\Expense::all();
        return view('expenses.index', compact('expenses'));}

在我的索引视图页面中,我希望在我的视图页面中获取费用表中包含收件人姓名的所有详细信息

@foreach($expenses as $expense)
<tr>
  <td width="5%">{!! $expense->id !!}</td>
<td width="7%">{!! $expense->date !!}</td>
<td width="7%">{!! $expense->job_id !!}</td>
<td width="10%">{!!$expense-> !!}</td></tr>
                        @endforeach

我不知道如何在我的索引视图中获取收件人姓名任何人都建议我的想法

1 个答案:

答案 0 :(得分:2)

而不是:

$expenses = \App\Expense::all();

你可以使用:

$expenses = \App\Expense::select('expenses.*','consignee.name')
            ->leftJoin('jobs','jobs.id','=','expenses.job_id')
            ->leftJoin('consignee','consignee.id','=','jobs.consignee_id') 
            ->get();

通过这种方式,您可以与其他2个表联系并获取Consignee的名称。