我已经建立了一个非常简单的项目,因为我想向 livewire 传递一个 id,它从具有该 ID 的表中返回一些数据。
我的基本页面包括
@livewire('ShowData',['id' => 4])
我设置了一个 Livewire 组件(ShowData),它是
public $id;
public function render()
{
return view('livewire.show-data');
}
我可以看到ID已通过 OK
<div class="text-center border-2 w-1/2 mx-auto bg-grey-200 my-4 px-4 py-4 rounded ">
{{$id}}
</div>
4 出现。所以我的下一组是添加在显示页面的顶部
@php
$fp =App\Models\FrontPanel::find($id);
@endphp
到目前为止一切顺利 - 我仍然得到数字 4。
但是当我用
替换显示 ID 时{{$fp->name}}
我明白了
尝试读取 null 上的属性“name”
任何帮助表示赞赏! (表中有一个字段名称BTW)。
我已经解决了。与可以在刀片文件上完成的组件不同,查找必须在渲染之前进行,因此在 FrontPanel.php 页面上我在渲染中添加了:
$frontPanel = FrontPanel::find($id);
return view('livewire.show-data', ['frontPanel' => $frontPanel]);
现在可以正常使用了。