Laravel 5.7(最新)分页错误(停留在第一页,无论您单击哪个分页链接)

时间:2018-12-19 05:36:19

标签: laravel laravel-5.7

链接到同一问题(不回答):Problems with Pagination on Laravel 5.7

这不会让我发表评论或颠簸,我与此用户(仅使用5.7)存在相同的问题。我感到惊讶的是,现在已经发布了多长时间,没有人回答。

我的dd()$admins = Admin::latest()->paginate(1);下方的屏幕截图

Screenshot

我的控制器:

 public function index()
    {
        $admins = Admin::latest()->paginate(1);
        return view('admin.settings.admins.index', compact('admins'));
    }

我的刀片文件:

<!--begin::Portlet-->
            <div class="m-portlet m-portlet--mobile m-portlet--body-progress-">
                <div class="m-portlet__head">
                    <div class="m-portlet__head-caption">
                        <div class="m-portlet__head-title">
                            <h3 class="m-portlet__head-text">
                                Admins
                            </h3>
                        </div>
                    </div>
                </div>
                <div class="m-portlet__body">
                    <div class="m-portlet__body-progress">Loading</div>
                    <table class="table">
                        <thead>
                        <tr>
                            <th>#</th>
                            <th>Name</th>
                            <th>Email</th>
                            <th>Status</th>
                        </tr>
                        </thead>
                        <tbody>
                        @foreach($admins as $admin)
                            <tr>
                                <th scope="row">{{ $admin->id }}</th>
                                <td><a href="{{ url('/'.config('app.admin_path').'/settings/admins/'.$admin->id.'/') }}">{{ $admin->last_name }}, {{ $admin->first_name }}</a></td>
                                <td><a href="{{ url('/'.config('app.admin_path').'/settings/admins/'.$admin->id.'/') }}">{{ $admin->email }}</a></td>
                                <td>@if($admin->status == 1)
                                        Active
                                @elseif($admin->status == 2)
                                        InActive
                                @else
                                        <font style="color:red;">Terminated</font>
                                @endif
                                </td>
                            </tr>
                            @endforeach
                        </tbody>
                    </table>
                    <div>
                        {{ $admins->appends(Request::all())->links() }}
                    </div>
                </div>
            </div>
            <!--end::Portlet-->

任何帮助都非常感激,因为这一直很艰难,我仍然没有解决它。

我的数据库行:

Click here to view image

3 个答案:

答案 0 :(得分:0)

您可以尝试以下方法:

控制器文件

public function cities()
{
    $cities = App\City::paginate(2);
    return view('welcome', compact('cities'));
}

刀片文件

{{ $cities->onEachSide(3)->links() }}

说明:

onEachSide(1)显示 ACTIVE 页之前和之后的页数。

Output Screenshot

例如,假设我们在第30页上的分页为5,总记录数为355,则比:

{{ $cities->onEachSide(1)->links() }}

1 2 .. 29 30 31 .. 66 67


{{ $users->onEachSide(2)->links() }}

1 2 .. 28 29 30 31 32 .. 66 67

答案 1 :(得分:0)

好,所以这花了我太多时间才弄清楚。 这是我的错误,希望对您有所帮助。

我将nginx用作网络服务器,因此这可能仅适用于该网络服务器。 在此行的末尾加上query_string非常重要:

try_files $uri $uri/ /index.php?$query_string

如果需要,我将发布整个配置,但这对您有帮助。

答案 2 :(得分:-1)

您尝试过吗?

{{ $admins->appends(Request::except('page'))->links() }}

如果要通过GET请求或查询字符串参数获取数据,则需要在每个没有页面参数的页面请求中包括这些查询字符串。

由于您已从请求中追加了所有内容,因此查询字符串中也包含了“ page = 1”,因此永远保留在第1页中。