使用laravel中的复选框按多个值搜索

使用laravel中的复选框按多个值搜索,laravel,search,checkbox,multiple-select,Laravel,Search,Checkbox,Multiple Select,我有job\u sector表,其中有sector\u id和job\u id字段。我只想通过我通过复选框选择的扇区搜索job\u id。可以选择多个部门 我的模型: public function scopeSelectedOptions($query, $input = []) { if(!empty($input)) { if(array_key_exists('sector_id', $input)) { $query->whereH

我有
job\u sector
表,其中有
sector\u id
job\u id
字段。我只想通过我通过复选框选择的
扇区
搜索
job\u id
。可以选择多个部门

我的模型:

public function scopeSelectedOptions($query, $input = [])
{
    if(!empty($input)) {
        if(array_key_exists('sector_id', $input)) {
            $query->whereHas('sector_id', function($q) use ($input) {
                return $q->whereIn('sector_id', $input['sector_id']);
            });
        }
    }
    return $query;
}
控制器:

public function jobsFilter(Request $request)
{
    $jobs = JobSector::SelectedOptions(request()->all())->get();
    return view('front.pages.job.jobfilter')->with(['title'=>'Job Filter', 'jobs' => $jobs]);           
}
我从中选择多个部门的表格:

<form action="{{ route('job.jobfilter') }}" method="GET" class="mb-4">
  {{csrf_field()}}                      
    @foreach(get_sectors() as $k=>$s)                     
      <input type="checkbox" name="input[]" value="{{ $k }}">{{ $k }}<br>
    @endforeach
    <input type="submit" value="Search" />
</form>

{{csrf_field()}}
@foreach(获取扇区()为$k=>$s)
{{$k}}
@endforeach
显示输出的查询:

@foreach($jobs as $c)
    {{ $c->job_id }} <br>
  @endforeach
@foreach($c形式的作业)
{{$c->job_id}}
@endforeach
它显示了表中的所有作业id


请帮帮我,

你给你的作用域分配了错误的数组

它看起来是这样的:

['input' => ['12' => true]]
试试这个

<form action="{{ route('job.jobfilter') }}" method="GET" class="mb-4">
  {{csrf_field()}}                      
    @foreach(get_sectors() as $k=>$s)                     
      <input type="checkbox" name="sector_id[{{ $k }}]">{{ $k }}<br>
    @endforeach
    <input type="submit" value="Search" />
</form>

(我只是忽略了你的作用域,以便更具可读性)

好的,但每当我选中复选框后搜索时,它的搜索只按扇区id 1进行。我弄乱了HTML代码,复选框没有“值”属性,它只是1,甚至没有发送到有效负载中,我在你的控制器中编辑了我的回答,尝试
dd(request()->all())
您确定get_sectors()函数工作正常吗?是的,它适合我。非常感谢你。这真的很有帮助。
public function jobsFilter(Request $request)
{
    $jobs = JobSector::whereIn('sector_id', array_keys(request()->sector_id))->get();
    return view('front.pages.job.jobfilter')->with(['title'=>'Job Filter', 'jobs' => $jobs]);           
}