Php Laravel分页链接不存在';在空输入期间不工作
我正在尝试在我的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
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()
,但表的生成取决于会话中的数据。可以有十列,但我可能只需要显示两列。这取决于会话值。您能否共享数据分页方式?请检查更新的问题。