首页 > 解决方案 > 从数据库的多个表中收集数据并面临问题以显示刀片中的数据

问题描述

我是 laravel 的新手。我正在为登录用户从三个数据库表中收集数据。

$Employee = Employee::where("id", $id)->get();
$Salary = Salary::where("emp_id", $id)->get();
$SalaryDetails = SalaryDetails::where("emp_id", $id)->get();
$data = array(
    'Employee'      => $Employee,
    'Salary'        => $Salary,
    'SalaryDetails' => $SalaryDetails
);
return view('pages.manager.salaryDetails')->with($data);

当我将这些数据发送到刀片时,它说

Property ... does not exist on this collection instance.

在这里如果我使用foreach问题就解决了。当我调用它时,问题就出现了{{$Employee->fullname}}。我不想在foreach这里使用,因为我正在为一个用户收集数据。有什么方法可以在不使用的情况下在刀片中显示数据foreach

标签: laravel

解决方案


要获得单用户使用find而不是get

$Employee = Employee::find($id);

当您使用where过滤某些数据然后通过get方法获取它时,您将获得一个集合。在你的情况下,你会得到一个收藏Employee

在这种情况下,您也可以这样做:

$Employee = Employee::where("id", $id)->first();

方法first返回集合中的第一个元素。


推荐阅读