如何从laravel 5中的两个相关表中获取数据?

乔纳森·索洛尔扎诺

我有两个模型Employees and Departments,我想从雇员那里获取所有数据,包括部门,像这样:

SELECT e.Firstname, e.Surname, e.Age, d.Name as Department FROM Employees as e INNER JOIN Departments as d ON e.Department = d.ID;

结果是:

------------------------------------------
| Firstname | Surname | Age | Department |
------------------------------------------
| John      | Doe     | 25  | Finance    |

我如何在Laravel 5中获得相同的结果?

我知道我可以像这样获得模型的所有数据:

$data = Employees::all();

但是我需要Department列作为父表的值。

使用查询生成器看起来像这样

 DB::table('Employees')
            ->join('Departments', 'Employees.Department', '=', 'Departments.ID')
            ->select('Employees.Firstname', 'Employees.Surname', 'Employees.Age', 'Departments.Name')
            ->get();

并且使用口才,它看起来像这样

模型

public function department()
{
    return $this->belongsTo('App\Departments','Department','ID');
}

控制者

$data->employees = Employees::with('department')->get();

使用查询构建器,我可以@include像这样传递数据并对其进行访问:

app.blade.php

@include('Club.index.employees',['employees'=>$data->employees])

employee.blade.php

@foreach($employees as $employee)
    @include('Club.index.member',['employee'=>$employee])
@endforeach

member.blade.php

<h3>{{ $employee->Firstname }}</h3>
<p class="member-surname">{{ $employee->Surname }}</p>
...

它可以工作,但是当我使用Eloquent时,它不会像Departments.Name在这种情况下那样显示来自父级的字段,我不知道在视图中调用它时是否丢失了某些内容。我也想知道如何为表列使用别名。

汗·沙鲁克(Khan Shahrukh)

在您的模型Employee中创建一个职能部门

public function department()
  {
      return $this->hasMany('App\Department');
  }

然后在您的控制器中这样做

$results = Employee::with('department')->get();

这是您获取员工所有部门的方式,但是请确保两个表都基于外键关联

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我如何从两个表中搜索数据,它们不相关

如何从MySQL中具有一对多关系的两个表中获取数据?

如何从Mysql和Codeigniter中的两个表中获取数据

根据Laravel Project中两个ID的组合从数据透视表中获取结果

Laravel雄辩地从两个表中获取数据

在laravel中插入与数据相关的两个表

如何从满足元数据表上两个或多个条件的表中获取数据?

如何从两个表中获取数据,第二个表显示行数

Laravel-如何从两个模型中获取数据?

如何从两个表中获取特定的行数据?

如何从android中的sqlite中的两个表中获取数据

如何使用第三个表SQL Server从两个相关的表中检索数据

如何编写查询以从单个字段中的两个表中获取数据

如何从实体框架中的两个关联表中获取数据

如何在laravel 5.1中插入两个相关的表

在Laravel中查询两个级别的相关数据

SQL查询,如何从两个表中获取数据

如何使用JOIN从两个表中获取数据

Yii2:如何显示两个相关表中的数据?

我如何使用mysql中的单个查询从两个表中获取数据

如何从两个相关表中获取数据并放入第三个表

如何使用MySql从数据库中的两个表中获取数据

如何在类似搜索中使用 ORM 从两个表中获取数据 - 使用 Laravel

如何从laravel 5中的两个相关表中获取数据

如何从laravel中的表中使用两个外键从单个表中获取数据

如何从laravel中的两个表中加入和获取数据?

如何从数据库中的两个表中获取最新的 N 个条目?

Laravel 从两个表中获取数据

如何编写查询以从实体框架中的两个表中获取数据