Laravel 5在一个页面中进行多重分页

时间:2016-09-21 02:05:43

标签: laravel-5 pagination

我有一个页面,其中有两个表显示来自不同数据库的不同数据。我能够为这两个表做分页,但当我点击表2的第2页时,表2也将重定向到第2页。如何使表2保留在第1页,而表1转到第2页,当我点击第2页。

1 个答案:

答案 0 :(得分:8)

如果您在laravel核心中看到,那么您将看到类似这样的分页功能

/**
 * Paginate the given query.
 *
 * @param  int  $perPage
 * @param  array  $columns
 * @param  string  $pageName
 * @param  int|null  $page
 * @return \Illuminate\Contracts\Pagination\LengthAwarePaginator
 *
 * @throws \InvalidArgumentException
 */
public function paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null)
{
    $total = $this->query->getCountForPagination();
    $this->query->forPage(
        $page = $page ?: Paginator::resolveCurrentPage($pageName),
        $perPage = $perPage ?: $this->model->getPerPage()
    );
    return new LengthAwarePaginator($this->get($columns), $total, $perPage, $page, [
        'path' => Paginator::resolveCurrentPath(),
        'pageName' => $pageName,
    ]);
}

现在在上面的函数中,您可以传递$ pagename以使两个分页单独工作,如下所示

$collectionA = ModelA::paginate(4, ['*'], 'pagination_a');
$collectionB = ModelB::paginate(4, ['*'], 'pagination_b');

或者你也可以使用setPageName函数来实现这个