Barryvdh/laravel-domPDF 返回 Attempt to read property "name" on bool

问题描述

我使用 Laravel 8 和 PHP 8 以及 barryvdh/laravel-domPDF。我有一个显示员工信息的 crud,你可以打印他们的工资单。当我不通过 $id 时,它可以正常工作并打印所有员工信息,但是当我这样做时会返回错误

尝试读取 bool 上的属性“name”

这是我的路线:

Route::get('/print/{id}',['App\Http\Livewire\EmployeesTable','print'])->name('livewire.employees-table.print');

这是我的模型函数

  public function print($id){
  $employees = Employees::find($id);
  $teams= Team::all();
  $pdf = PDF::loadView('employees.payslip',compact('teams','employees'));
  return $pdf->download('invoice.pdf');
}

这是我的用户关系:

  public function employees(){
  return $this->hasMany(Employees::class);
}

这是我的员工关系:

public function user(){
  return $this->belongsTo(User::class);
}

.

<thead>
 @foreach ($employees as $employee)
 <tr>
   <td>
   {{$employee->name}} {{$employee->surname}}
   {{$employee->phone}}
   {{$employee->role}}
 </td>
 </tr>
 @endforeach
</thead>
<thead>
 @foreach ($teams as $team)
 <tr>
   <td>
   {{$team->companyName}}
   {{$team->street}}
   {{$team->compound}}
   {$team->suburb}}
   {$team->phone}}
 </td>
 </tr>
 @endforeach
</thead>
</table>

解决方法

我认为 $employees 返回空结果以便在循环之前更好地检查

@if(isset($employees)&&count((array)$employees))
 @foreach ($employees as $employee)
 <tr>
   <td>
   {{$employee->name}} {{$employee->surname}}
   {{$employee->phone}}
   {{$employee->role}}
 </td>
 </tr>
 @endforeach
@endif

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...