php - 在 Laravel 5.4中,php如何聯接兩個表

  显示原文与译文双语对照的内容
73 1

我正在學習 Laravel 5.4. 但我一直在一個地方。

我有兩個表 courseNames branchnames 。

branchnames表包含: id 。branchname 。course_id

courseNames表包含: id,coursename

coursename具有唯一名稱,branchnames的course_id具有coursename的id,可以重複。

我的BranchNameController


public function index()


{


 $branchname = branchname::all();


 $coursename = coursename::all();


 return view('admin.branchname',compact('branchname','coursename'));


}



branchname.blade.php 為:


<tbody>


@foreach($branchname as $branchnames)


<tr>


<td>{{ $branchnames->branchname }}</td>


<td>{{ $branchnames->course_id }}</td>



</tr>


@endforeach 


</tbody>



我想顯示課程名稱,而不是 {{ $branchnames-> course_id }} 。 如何完成?

模型 branchname.php 為:


<?php



namespace App;



use IlluminateDatabaseEloquentModel;



class branchname extends Model


{


//


}



模型 coursename.php 為:


<?php



namespace App;



use IlluminateDatabaseEloquentModel;



class coursename extends Model


{


//


}



时间:

75 5

你可以使用 Laravel 關係來實現這個。 你的branchnames course_id列屬於課程表。

在branchname模型中添加以下關係:


public function course() {


 return $this->belongsTo(Appcoursename::class, 'course_id')


}



然後在控制器索引函數中使用:


public function index()


{


 $branchname = branchname::with('course')->get();


 $coursename = coursename::all();


 return view('admin.branchname',compact('branchname','coursename'));


}



然後在視圖中,可以顯示名稱:


<td>{{ isset($branchnames->course)? $branchnames->course->coursename :"" }}</td>



...