我在视图页面中有一个选择下拉列表,我在livewire组件中使用了该功能。过滤器工作正常,但问题是当我使用下拉列表过滤作业时,它过滤了数据,但没有显示下拉列表中的其他输入。我必须返回选择另一个输入进行过滤。请有人帮助我。
下面是我在livewire组件中的函数
class Index extends Component
{
public $jobs, $jobInput = [];
protected $queryString = ['jobInput'];
public function render()
{
$this->jobs = CreateJob::where('status', '1')->when($this->jobInput, function ($query) {
$query->where('job_title', $this->jobInput);
})->get();
return view('livewire.frontend.job.index', ['jobs' => $this->jobs]);
}
}
这是我的浏览页面
<div class="card-body">
@if ($jobs)
<label class="d-block">
<select class="form-control" name="jobInput" wire:model="jobInput" id="jobInput">
<option value="">--Select--</option>
@foreach ($jobs as $job)
<<option value="{{ $job->job_title }}">{{ $job->job_title }}</option>
@endforeach
</select>
</label>
@endif
</div>
以下是我的输出
第一次
看到下拉菜单只显示选定的结果。我想显示像在第一个图像,甚至过滤后。
提前感谢!
1条答案
按热度按时间kgsdhlau1#
您应该删除此块:
因为只要
$this->jobInput
存在,when
中的where
查询就会起作用。如果你想在下拉菜单中选择它,你必须在视图中的
@foreach
循环中完成。