Livewire 不显示来自数据库的数据。好吧,如果我添加数据,它实际上会起作用

Livewire does not display data from database. Well it actually does if I dd the data

以下代码不显示数据。但是,如果我添加数据,它就可以工作

Livewire Company.php:

public $company;

public function mount(Company $company) {
    $this->company = $company;
}

public function render()
{
    return view('livewire.company');
}

livewire.company:

<div>
{{$company->name}}</div>

虽然如果我 dd $company->name 它有效

Web.php:

Route::livewire('/companies/{company}', 'company')->name('show-company');

layouts/app.blade.php:

@livewireStyles @livewire('company') <script src="{{asset('js/app.js')}}"></script> @livewireScripts

此外,如果我不使用路由模型绑定,而是像这样查找它

$this->company = Company::find($company);

它抛出无法解析的依赖解析[参数#0 [$company]]

看起来您在安装函数中接收了一个模型,但是当从 layouts/app.blade.php 调用它时,您没有传递任何参数。 所以,而不是

@livewire('company')

你可以这样调用:

@livewire('company',['company' => App\Company::find(1)])

这里我使用了我的第一个公司模型实例,但你可以发送你需要的。但请记住,您应该传递一个模型,因为您在 mount() 中收到了一个模型。

希望有用。