我正在学习 Laravel 5.4。但我一直停留在一个地方。

我有两个表coursenamesbranchnames

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> 


评论关闭
IT序号网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!