【发布时间】:2019-02-13 03:09:28
【问题描述】:
我正在尝试在我的 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() }}
如果我搜索某些内容,那么它会完美运行。但是如果我用空白值搜索。然后它不起作用。第一页没有任何问题,但随后就中断了。
案例1(问题案例):
我在搜索中输入了一个空值。所以搜索网址是/search?show%5Bbango%5D=。
但是,当我单击下一步时,网址变为 /search?page=2(并返回错误)
如果我在 url 地址中手动输入/search?show%5Bbango%5D=&page=2 则可以完美运行。
案例 2:
我在搜索中输入了一些数据,例如“123”。然后我的网址变成 /search?show%5Bbango%5D=123 。
在这种情况下,一切都会完美运行。
案例 3:
这可能无关紧要。但是,如果我在多个字段中运行查询,那么它可以正常工作,但是当我使用分页时,不知何故,所有空输入都会从 url 中删除。
我可能会尝试使用两个输入字段进行搜索(例如:姓名和班戈)。如果我将名称字段保留为空并将 '123' 放在bango 中,那么 url 就会变成/search?show%5Bbango%5D=123&show%5Bname%5D=。
但是,如果我尝试转到下一页。那么 url 就变成了/search?show%5Bbango%5D=123&page=2。
虽然显示的结果很好,但是 url 突然放弃了 name 字段。
如何确保分页仍然适用于空输入。我检查了一些类似的问题并尝试附加查询请求。但它仍然对我不起作用。
【问题讨论】:
-
尝试使用
request()而不是session() -
但是我的表的生成取决于我在会话中拥有的数据。可以有十列,但我可能只需要显示两列。这取决于会话值。
-
您能分享一下您是如何对数据进行分页的吗?
-
检查更新的问题。
标签: php laravel pagination