php - 如何加入 Laravel 5.4 中的两个表

标签 php laravel laravel-5

我正在学习 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>

关于php - 如何加入 Laravel 5.4 中的两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53369846/

相关文章:

php - 通过 HTML 按钮显示 SQL 查询

php - 将 mySQL 中的数据显示到 Laravel 中的 View 时出错

Laravel Eloquent,使用 withTrashed() 返回空关系的多深度点表示法

php - opencart - 想要将产品定价详细信息添加到订单/发票中

php - 我可以将 select as 与 select exit 一起使用吗

php - Laravel 使用查询字符串构建外部 URL 的最佳方法是什么?

reactjs - 错误 : Request failed with status code 405

mysql - 模型的关系 (Laravel 5.2)

php - Laravel 所有 session ID 与 Redis 驱动程序

javascript - Jquery 未在 Wordpress 主题中正确排队