Я получаю результаты продуктов на странице категории. И у меня есть система, чтобы скрыть распроданные продукты.
Подумайте, что существует десять страниц для всех продуктов в категории. Когда я проверяю флажок скрыть распроданы продукты. Система возвращает? 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);
}
Как я могу избавиться от этой ошибки?
Прежде всего getProductsOfCategory
должен вернуть экземпляр Illuminate\Pagination\Paginator
Тогда где-то в вашем частичном представлении вы должны использовать это метод $products->links()
Вы можете просмотреть раздел страниц на сайте.
Эта ошибка возникает, когда вы вызываете этот метод для плохого объекта, например: redirect()->links()
,
Если это не поможет, вставьте сюда свой частичный вид.
Я решил проблему, не используя метод перенаправления Laravel.
header("Location: ".$location);
die();
отлично работает вместо
return redirect()->to($location)