【问题标题】:Attempt to read property "name" on bool laravel 8, variable not transfering to view尝试在 bool laravel 8 上读取属性“名称”,变量未传输到视图
【发布时间】:2021-06-04 12:20:47
【问题描述】:

我在使用 PHP 8 的 Laravel 8 上一直遇到这个错误。我像这样从视图中获取 id:

  <button type="submit">
     <a href="{{route('employees.payslip', $employee->id)}}" class="text-green-600 hover:text-green-900">Payslip</a>
  </button>

然后像这样转到 web.php:

Route::get('employees/{id}/payslip', ['App\Http\Controllers\PrintController', 'print'])->name('employees.payslip');

然后像这样进入打印功能:

    public function print($id)
{
    $employees = Employees::findOrFail($id);
    $teams = Team::all();
    return view('employees.payslip',compact('employees', 'teams'));
}

当我删除返回视图行并将其替换为:

dd($employees);

它给了我正确的信息,但是当我保持线路时:

return view('employees.payslip',compact('employees', 'teams'));

并将视图“employees.payslip”发送给它:它给了我错误:有人有什么想法吗?

  @forelse($employees as $employee)
<tr>
  <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
    {{$employee->name}}
  </td>
  <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
    {{$employee->surname}}
  </td>
  <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
    {{$employee->address}}
  </td>
  <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
    {{$employee->phone}}
  </td>
  <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
    {{$employee->role}}
  </td>
  <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
    {{$employee->absent}}
  </td>
</tr>
@empty
  <td>
    No Information to Display
  </td>
@endforelse

【问题讨论】:

  • $employees 是单个模型,而不是员工的集合。您当前正在尝试遍历单个 Employee 的属性。删除循环,它应该可以工作

标签: php laravel


【解决方案1】:

由于您从 Employee 模型中获取一条记录。所以它返回单个对象。

$employees = Employees::findOrFail($id);

正如@aynber 所说,您不需要循环。就像下面访问数据一样

  {{$employees->name}}

如果你循环然后错误说

尝试在 bool laravel 8 上读取属性“名称”,变量不是 转移到查看

 @forelse($employees as $employee)
@php 
dd($employee);
@endphp
@empty
  <td>
    No Information to Display
  </td>
@endforelse

这里 dd($employee); 将返回 true 所以它会抛出错误

另外请记住,如果没有记录,那么它可能会返回 null,因此请务必检查 isset$employees-&gt;name??null

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-25
    • 2021-08-08
    • 2021-05-02
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 2021-05-17
    • 2022-06-10
    相关资源
    最近更新 更多