нумерация страниц на массиве Laravel - PullRequest
1 голос
/ 09 ноября 2019

Я использую Laravel и пытаюсь использовать нумерацию страниц для своих продуктов

array:4 [▼
  0 => Product {#770 ▶}
  1 => Product {#766 ▶}
  2 => Product {#814 ▶}
  3 => Product {#846 ▶}
]

И я получаю их таким способом

$this->getAllCategoriesProducts(31)

31 - идентификатор категории

и это мой метод:

  public function getAllCategoriesProducts($cat_id){
      $allProducts = [];
      foreach(ProductCategory::find($cat_id)->children()->get() as $subCategory){
        if($subCategory->children()->exists()){
          foreach($subCategory->children()->get() as $subSubCategory){
            foreach($subSubCategory->products()->get() as $product){
            $allProducts[] = $product;
            }
          }
          if($subSubCategory->children()->exists()){
            foreach($subSubCategory->children()->get() as $subSubSubCategory){
              foreach($subSubSubCategory->products()->get() as $product){
              $allProducts[] = $product;
              }
              if($subSubSubCategory->children()->exists()){
                foreach($subSubSubCategory->children()->get() as $subSubSubSubCategory){
                  foreach($subSubSubSubCategory->products()->get() as $product){
                  $allProducts[] = $product;
                  }
                }
              }
            }
          }
        }
      }
      return $allProducts;
    }

, но когда я использую

$this->getAllCategoriesProducts($categroyId)->paginate(8)

, это выдает мне эту ошибку

Вызовфункция-член paginate () для массива

1 Ответ

3 голосов
/ 09 ноября 2019

Вы можете добавить paginator вручную следующим образом.

use Illuminate\Pagination\LengthAwarePaginator;

$products = $this->getAllCategoriesProducts(31);
$total = count($products);
$perPage = 5; // How many items do you want to display.
$currentPage = 1; // The index page.
$paginator = new LengthAwarePaginator($products, $total, $perPage, $currentPage);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...