Laravel 4在GET请求上分页

时间:2014-07-23 19:05:02

标签: php laravel laravel-4 pagination

我有一个用于过滤类别页面结果的表单。因此,网址将为localhost/public/search?keyword=blue但是当我尝试对其进行分页时,网址会显示为localhost/public/search?page=2,依此类推。如果我手动将page=2部分添加到网址的末尾,它可以正常工作,但不会根据需要将其添加到带有get请求的URL中。它需要显示为localhost/search?keyword=blue&page=2

不确定是否需要,但这是我处理paginate()

的方法
        $category = Inventory::select('inventory_images.image', 'inventory.id' , 'inventory.sku', 'inventory.name', 'inventory.price', 'inventory_categories.category')
            ->join('inventory_categories', 'inventory.sku', '=', 'inventory_categories.sku')
            ->leftJoin('inventory_images', 'inventory.sku', '=', 'inventory_images.sku')
            ->where('inventory.active', '=', 1)
            ->where('inventory.stock_quantity', '>', 2)
            ->where('inventory.description', 'LIKE', '%'. Input::get('keyword') . '%')
            ->orWhere('inventory.name', 'LIKE', '%'. Input::get('keyword') . '%')
            ->groupby('inventory.id')
            ->take(1000)
            ->paginate(16);

1 个答案:

答案 0 :(得分:2)

问题出在您的视图文件中,其中打印了分页 您需要将查询参数附加到Eloquent的paginator生成的链接 - 这非常简单!

<div class="pagination">
    {{ $model->appends(Input::except('page'))->links() }}
</div>

注意:您必须附加除page查询参数之外的所有内容。如果您不这样做,则会在网址中包含两次。