【问题标题】:Laravel pagination not working with closureLaravel 分页不适用于闭包
【发布时间】:2023-03-18 06:35:02
【问题描述】:

我正在尝试使用 Laravel 实现搜索功能。这是我应该返回搜索结果的方法:

$keyword = request('q');
$posts = Post::where('deleted', false)
                            ->where(function($q) use($keyword) {
                                        $q->where('title', 'like', '%' . $keyword . '%')
                                        ->orWhere('body', 'like', '%' . $keyword . '%');
                                    })     
                            ->latest()
                            ->paginate(5);

问题是当我搜索超过 5 个结果的内容时,它会在链接中显示前 5 个结果和 2 个(例如)页面,但是当我点击第二个页面时,链接中有 3 个页面和一些的帖子是重复的。我猜是关闭导致了这个问题,但我不知道如何解决它。

欢迎任何建议,谢谢! :)

【问题讨论】:

    标签: laravel pagination eloquent closures


    【解决方案1】:

    由于您使用的是请求中的数据,因此您需要附加它以便能够在下一个请求中使用:

    {{ $posts->appends(['q' => request('q')])->links() }}
    

    来自the docs

    您可以使用appends 方法附加到分页链接的查询字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-08
      • 2017-09-14
      • 2015-08-11
      • 2015-02-09
      • 2014-05-29
      • 1970-01-01
      相关资源
      最近更新 更多