【问题标题】:Livewire does not display data from database. Well it actually does if I dd the dataLivewire 不显示数据库中的数据。好吧,如果我 dd 数据,它实际上确实如此
【发布时间】:2023-04-02 17:45:01
【问题描述】:

以下代码不显示数据。但是如果我 dd 数据它就可以了

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');

布局/app.blade.php:

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

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

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

它抛出不可解析的依赖解析 [Parameter #0 [ $company ]]

【问题讨论】:

  • 好的,我需要先了解一些事情。 1. 你的组件刀片的名称是什么? 2. 当你在 mount() 里面 dd 时; ,你有数据吗?
  • @fahim152 是的,当我在 mount 中 dd 时确实得到了数据
  • 你的 livewire 刀片文件的名称是什么?

标签: laravel laravel-blade laravel-livewire


【解决方案1】:

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

@livewire('company')

你可以这样称呼:

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

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

希望它会起作用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-12-04
    • 2016-01-29
    • 2020-01-01
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多