【问题标题】:Laravel pagination link doesn't work during empty inputLaravel 分页链接在空输入期间不起作用
【发布时间】: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=&amp;page=2 则可以完美运行。

案例 2:

我在搜索中输入了一些数据,例如“123”。然后我的网址变成 /search?show%5Bbango%5D=123 。 在这种情况下,一切都会完美运行。

案例 3:

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

我可能会尝试使用两个输入字段进行搜索(例如:姓名和班戈)。如果我将名称字段保留为空并将 '123' 放在bango 中,那么 url 就会变成/search?show%5Bbango%5D=123&amp;show%5Bname%5D=

但是,如果我尝试转到下一页。那么 url 就变成了/search?show%5Bbango%5D=123&amp;page=2

虽然显示的结果很好,但是 url 突然放弃了 name 字段。

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

【问题讨论】:

  • 尝试使用request()而不是session()
  • 但是我的表的生成取决于我在会话中拥有的数据。可以有十列,但我可能只需要显示两列。这取决于会话值。
  • 您能分享一下您是如何对数据进行分页的吗?
  • 检查更新的问题。

标签: php laravel pagination


【解决方案1】:

由于您使用的是 foreach,因此它需要一个数组。尝试设置

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

在控制器上。

【讨论】:

    猜你喜欢
    • 2018-06-25
    • 2021-01-11
    • 2014-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-03
    相关资源
    最近更新 更多