Php Laravel错误:此集合实例上不存在属性[id]。但它在本地服务器上工作
如标题中所述,我收到错误“此集合实例上不存在属性[id]”。只有在联机运行代码时,这里才是我的相关代码 1-EmployeeController(浏览器告诉我错误在第二行) 2-show.blade.phpPhp Laravel错误:此集合实例上不存在属性[id]。但它在本地服务器上工作,php,laravel,collections,eloquent,Php,Laravel,Collections,Eloquent,如标题中所述,我收到错误“此集合实例上不存在属性[id]”。只有在联机运行代码时,这里才是我的相关代码 1-EmployeeController(浏览器告诉我错误在第二行) 2-show.blade.php <div class="jumbotron"> <h1>{{$employee->name}} ({{$employee->position}})</h1> @if (isset($edocument)) <a href="{{r
<div class="jumbotron">
<h1>{{$employee->name}} ({{$employee->position}})</h1>
@if (isset($edocument))
<a href="{{route('employee-docs.show',$edocument->id)}}" class="btn btn-lg btn-primary">Go To Employee Database Page</a>
@else
<p class="lead bg-danger">Employee documents are not uploaded</p>
@endif
<a href="{{route('getContract',$employee->id)}}" class="btn btn-success btn-lg">Create Employee Contract </a>
{{$employee->name}({{$employee->position})
@如果(isset($edocument))
@否则
员工文档未上传
@恩迪夫
如果有人能更详细地向我解释这个错误,那也太好了。谢谢
附言。。这是我的第一个laravel项目(;也许这可以帮助你。你为什么不使用-
return view('employee.show', ['employee' => $employee, 'edocument'=>$edocument]);
它对我起了作用。(不必在show.blade.php中更改任何内容)您可以在控制器方法中使用路由模型绑定来获取
员工
模型。但是您还可以运行查找
,这将失败,因为您传递的是模型而不是id。请按照下面显示的代码之一进行操作,不要混合使用它们
如果要使用路由模型绑定,请执行此操作
public function show(Employee $employee)
{
$edocument = EDocument::where ('employee_id', $employee->id)->first();
return view ('employee.show')->with(compact('employee', 'edocument'));
}
如果要传递员工id并在controller中获取模型,请执行此操作
public function show($employee)
{
$employee = Employee::find($employee);
$edocument = EDocument::where ('employee_id', $employee->id)->first();
return view ('employee.show')->with(compact('employee', 'edocument'));
}
谢谢。是的,我这样做了,它工作了……我想我没有注意到那个错误,因为代码在本地工作,这很奇怪。
public function show($employee)
{
$employee = Employee::find($employee);
$edocument = EDocument::where ('employee_id', $employee->id)->first();
return view ('employee.show')->with(compact('employee', 'edocument'));
}