【问题标题】:Why is Laravel paginate() not working as expected but simplePaginate() does?为什么 Laravel paginate() 没有按预期工作,但 simplePaginate() 可以?
【发布时间】:2019-08-28 02:01:56
【问题描述】:

我有一个名为Conversation 的模型。我想通过对它们进行分页来显示视图中的所有行。我知道使用paginate() 方法或simplePaginate() 方法对结果进行分页。

在我的例子中,paginate()simplePaginate() 都按预期对结果进行了分页。我想在刀片文件中显示分页链接。我也知道links()方法是用来做的。

但问题是,当我使用paginate() 时,links() 方法根本不起作用。当我使用simplePaginate() 时它可以工作。我不想使用simplePaginate(),因为它只显示上一个下一个链接。

这是我正在使用的最小代码:

web.php

Route::get('/conversations', 'RouteController@conversations')->name('conversations');

RouteController.php

class RouteController extends Controller {

    public function conversations(Request $request) {
        $conversations = Conversation::paginate(10);
        return view('conversations')->with('conversations', $conversations);

        // I also tried return view('conversations', compact('conversations));
    }
}

conversations.blade.php

..
<div>
    {{ $conversations->links() }}
</div>
..

我阅读了文档,代码中的一切似乎都很好。有趣的是,在我离开的前一天它还在工作!

我不明白为什么会这样? 这是预期的行为吗?还是我错过了什么?

【问题讨论】:

  • 您是否尝试过在刀片中使用 {!! $conversations-&gt;render() !!} 而不是 links() ?还要检查它是否需要css类才能正确显示,检查元素并检查它是否存在?也尝试发布默认分页资源php artisan vendor:publish --tag=laravel-pagination
  • 是的,我也试过{!! $conversations-&gt;render() !!}。并且在检查 html 中不存在该元素。您的第三个解决方案有效,即php artisan vendor:publish --tag=laravel-pagination。如果您可以将此作为答案发布,那么我会将其标记为已接受。谢谢:)

标签: php laravel-5.8 laravel-pagination


【解决方案1】:

Laravel 分页供应商资源

php artisan vendor:publish --tag=laravel-pagination

此外,无论您在哪里使用需要配置等资源的任何包

datatables
datatables-buttons
datatables-fractal
datatables-html
laravel-errors
laravel-mail
laravel-notifications
laravel-pagination

只需输入 php artisan vendor:publish 即可获取您需要发布的所有默认供应商。

【讨论】:

    猜你喜欢
    • 2014-08-04
    • 2021-01-03
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-08
    相关资源
    最近更新 更多