我正在学习 Laravel 5.4。但我一直停留在一个地方。
我有两个表coursenames 和branchnames。
branchnames 表包含:id, branchname, course_id
coursenames 表包含:id,coursename
coursename有一个唯一的名字,branchnames的course_id有一个id为coursename,可以重复。
我的 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>
我想显示类(class)名称而不是 {{ $branchnames->course_id }}。如何实现?
模型 branchname.php 是:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class branchname extends Model
{
//
}
模型 coursename.php 是:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class coursename extends Model
{
//
}
请您参考如下方法:
您可以使用 Laravel 关系来实现这一点。您的 branchnames course_id 列属于类(class)表。
在您的 branchname 模型中添加以下关系:
public function course() {
return $this->belongsTo(\App\coursename::class, 'course_id')
}
然后在你的 Controller 索引函数中使用:
public function index()
{
$branchname = branchname::with('course')->get();
$coursename = coursename::all();
return view('admin.branchname',compact('branchname','coursename'));
}
然后在 View 中您可以将名称显示为:
<td>{{ isset($branchnames->course) ? $branchnames->course->coursename : "" }}</td>