Laravel 搜索过滤器

Laravel search-filter

我在通过点击将选定的索引传递到我的控制器时遇到问题。 如果我手动更改浏览器中的索引,它就可以工作。 (http://localhost:3000/admin/users?user=&sortBy=5) $sortOptions 是我的控制器中二维数组的名称。 sortDisplay 是我控制器中二维数组中的一个字段。

我的 foreach 循环中是否遗漏了什么?

<label for="sortBy">Sort by</label>
            <select class="form-control" name="sortBy" id="sortBy">
                @foreach($sortOptions as $index => $sortOptions)
                    <option value="{{$index}}" {{ (request()->sortBy == $index ? 'selected' : '') }}>
                        {{$sortOptions["sortDisplay"]}}
                    </option>
                @endforeach
            </select>

当值改变时使用jQuery提交表单 所以你的页面会刷新,你会得到你想要的

foreach 循环中,您分配的变量名称与您正在迭代的变量相同。在您的例子中,在第一个循环之后,您使用 $sortOptions 的第一个索引的内容重新实例化 $sortOptions 变量。

@foreach($sortOptions as $index => $sortOption) // <-- $sortOption, not $sortOption(s)
    <option value="{{$index}}" {{ (request()->sortBy == $index ? 'selected' : '') }}>
        {{ $sortOption["sortDisplay"] }}
    </option>
@endforeach