Laravel 5.2重定向到页面查询字符串

时间:2016-05-01 10:39:11

标签: php laravel redirect paginate

我在类别页面中获得了产品的结果。我有系统隐藏售罄的产品。

认为所有类别的产品都有十页。当我检查复选框隐藏已售完的产品。系统返回?page = 10但是?page = 10

中没有产品

我决定使用redict系统。

$products = (new Product)->getProductsOfCategory($category->id);
$last_page = $products->lastPage();

if(request()->has('page'))
{
    if(request()->get('page') > $last_page)
    {
        $location = categoryUrl($category->id, $category->category, NULL, NULL, $last_page);
        //Output: http://dtl/en/cat/authentic-purses/120?page=7
        return redirect()->to($location);
    }
}

但我收到错误

Method [links] does not exist on Redirect.

$ products是分页数据。

更新:

public function getProductsOfCategory($category_id){
    $query = $this->where('category_id', $category_id);
    $query = $this->productFilter($query);

    $query = $this->productSorting($query);
    return $query->paginate(18);
}

我怎样才能摆脱这个错误?

2 个答案:

答案 0 :(得分:0)

首先Illuminate\Pagination\Paginator应该返回$products->links()的实例 然后在局部视图的某处,您应该使用方法redirect()->links() yo在网站上查看分页部分。

当你在坏对象上调用此方法时会遇到此错误,例如:from urllib.request import urlopen

如果这不会有帮助您应该在此处粘贴部分视图。

答案 1 :(得分:0)

我在不使用Laravel Redirect Method的情况下解决了这个问题。

header("Location: ".$location);
die();

工作正常,而不是

return redirect()->to($location)