Php Laravel分页链接不存在';在空输入期间不工作

Php Laravel分页链接不存在';在空输入期间不工作,php,laravel,pagination,Php,Laravel,Pagination,我正在尝试在我的laravel刀片视图中显示表中的所有数据 控制器 public function search() { $search = request('show'); $users = User::query(); foreach ($search as $field=>$value) { if($value!=NULL) { $u

我正在尝试在我的laravel刀片视图中显示表中的所有数据

控制器

public function search()
    {
       $search = request('show');
       $users = User::query();

       foreach ($search as $field=>$value) 
       {
             if($value!=NULL)
             {
                $users = $users->where($field, 'LIKE', '%'.$value.'%');
             }
        }
       if(request()->has('sort'))
       {
            $order = explode(',',request('sort'));
            $users = $users->orderBy($order[0],$order[1]);
       }
        $users = $users->SimplePaginate(15);

        return view('nabil.homepage',compact('users'));         
    }
刀片

@foreach($users as $user)
    <tr>
        @if(session()->has('show'))
            @foreach(session()->get('columns') as $column)
                @if(in_array($column,session()->get('show')))
                    <td>{{ $user->$column }}</td>
                @endif
            @endforeach
        @endif
    </tr>
@endforeach
</table>
{{ $users->appends(Illuminate\Support\Facades\Input::except('page'))->links() }}
@foreach($users作为$user)
@如果(session()->has('show'))
@foreach(session()->get('columns')作为$column)
@if(在数组中($column,session()->get('show'))
{{$user->$column}
@恩迪夫
@endforeach
@恩迪夫
@endforeach
{{$users->appends(illumb\Support\Facades\Input::except('page'))->links()}
如果我搜索某个东西,那么它会完美地工作。但如果我用空白值搜索。那就不行了。第一页没有任何问题,但随后就断了

案例1(问题案例):

我在搜索中输入一个空值。因此,搜索url是
/search?show%5Bbango%5D=

但是,当我单击“下一步”时,url变为
/search?page=2
(并返回错误)

如果我在url地址中手动输入
/search?show%5Bbango%5D=&page=2
,则它可以正常工作

案例2:

我在搜索中输入了一些像“123”这样的数据。然后我的url变成
/search?show%5Bbango%5D=123
。 在这种情况下,一切都很完美

案例3:

这可能无关紧要。但若我在多个字段中运行查询,那个么它可以正常工作,但当我使用分页时,所有空输入都会从url中删除

我可能会尝试使用两个输入字段(例如:name和bango)进行搜索。如果我将name字段保留为空,并将'123'放在bango中,则url将类似于
/search?show%5Bbango%5D=123&show%5Bname%5D=

但是,如果我尝试进入下一页。然后url变成
/search?show%5Bbango%5D=123&page=2

虽然显示的结果很好,但url突然删除了名称字段


如何确保分页仍然适用于空输入。我检查了一些类似的问题,并尝试附加查询请求。但对我来说还是不行

因为您使用的是foreach,所以它需要一个数组。试着设置

$search = request('show') ?? [];

在控制器上。

尝试使用
request()
而不是
session()
,但表的生成取决于会话中的数据。可以有十列,但我可能只需要显示两列。这取决于会话值。您能否共享数据分页方式?请检查更新的问题。