【问题标题】:Laravel 4 pagination links empty pageLaravel 4分页链接空页面
【发布时间】:2019-02-28 21:11:06
【问题描述】:

我有一个返回数百条数据库记录的查询。

当我尝试使用 Laravel 4.2 方法对其进行分页时。链接正在显示,它们将我引导至search-view?page=1 等等,但链接打开了没有结果的空白页面。只有第一页包含结果。

当我试图在不分页的情况下显示这些结果时,页面永远不会结束,所以我需要对其进行分页。

控制器:

$results = $this->model->where($searchByColumn, '=', $searchKey)
                       ->paginate(30);

return View::make('search-view')
            ->with('results', $results);

查看:

@foreach ($results as $result)
   {{$result}} <br>
@endforeach

{{$results->links()}}

请问有什么帮助吗?

【问题讨论】:

  • 提供路由search-view及其控制器的代码
  • @MahdiYounesi Route 仅运行我在此处提供的前两个代码块中的代码。那里没有其他东西。我正在从数据库中获取结果并将它们传递给视图,仅此而已。
  • 试试这个paginate($30, ['*'], 'page', $request-&gt;page);
  • 你试过APP_DEBUG=true吗?日志中没有错误?
  • 问题仍然存在。任何人:D?

标签: php laravel laravel-4 pagination


【解决方案1】:

我猜你在第二页上看不到任何记录,可能是因为 $searchByColumn 和 $searchKey 没有定义,它只在第一页上定义,因为作为表单的输入输入,而不是在其他页面上,如果您遵循基本的分页器链接。

要通过连续请求保持 $searchByColumn 和 $searchKey 的值,您可以将它们附加到分页器生成的链接中,如下所示:

{{ $results->appends(
    array('searchByColumn' => $searchByColumn, 
    'searchKey ' => $searchKey ))->links() }}

调整代码以遵循参数名称,不要忘记将它们传递给视图。

【讨论】:

    【解决方案2】:

    尝试像这样compact 帮助您解决问题

      return View::make('search-view', compact('results'))
                    ->with('results', $results);
    

    在执行compact 时,您已经将$results 变量包含在视图中用作$results,与使用with('results', $results) 完全相同。所以这个最后一个可以被删除。如果您想使用compact 加载更多变量,只需用逗号分隔变量名称即可。

    【讨论】:

      猜你喜欢
      • 2014-02-26
      • 2013-06-27
      • 1970-01-01
      • 2016-11-17
      • 2020-05-27
      • 2018-10-19
      • 2013-11-17
      • 1970-01-01
      • 2014-02-08
      相关资源
      最近更新 更多