2015-12-29 35 views
1

我有三个表:如何在laravel雄辩中加入三张表?

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

相反的:

$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个表连接,并得到收货人的名称。

+0

好的,以及如何使用这个出来在我看来得到**名称**?在这里' {!! $ expense-> !!}' – Hamelraj

+0

@HamelRaj只需'{! $ expense-> name !!}' –

+0

在json中我会得到这个名字:“”但是当我使用'{!! $ expense-> name !!}'空无输出? – Hamelraj