Laravel Livewire:在任何方法调用之后,我的数组都被取消了

Laravel Livewire: after any method call, my array gets nullified

所以我有一个 livewire 组件,它有两个属性 $viewedJob$jobs,这是与 $viewedJob 相关的作业集合。我的逻辑是。当您单击某个工作时,该工作会变得 $viewedJob 简单。

所以我设置了一个 livewire 方法来执行逻辑

public function viewJob($jobId) 
{
    $this->viewedJob = Job::find($jobId);
    $this->jobs = $this->jobs;
}

在我的前端中我这样称呼它

<button wire:click="viewJob({{$job}})" class="truncate">
    {{$job->title}}
</button>

我的问题

问题是每当 viewJob 方法被调用时,$jobs 数组就会被清空,其中的每个人都会变成空,我得到这个错误

我也试过不在里面做任何事情 viewJob 仍然得到同样的错误

public function viewJob($jobId) 
{
    // although i dont do anything, i still get the same error!!
}

任何想法都会有所帮助,感谢您的宝贵时间。

如果您的前端代码在 $jobs 变量循环中,您应该试试这个。

<button wire:click="viewJob({{$job->id}})" class="truncate">
    {{$job->title}}
</button>

如果这不起作用,您应该将 $jobs 集合放入一个数组中,例如:

$this->jobs = Job::all()->toArray();

在前端你可以这样写:

<button wire:click="viewJob({{$job['id']}})" class="truncate">
    {{$job['title']}}
</button>

我希望它能奏效。我的回答是基于你的前端代码在一个循环中。