Как изменить массив с коллекцией Laravel - PullRequest
0 голосов
/ 10 ноября 2019

Я работаю над проектом Laravel. У меня есть многоуровневые категории в моем проекте, и я создаю метод для получения всех продуктов каждой категории и ее дочерних элементов, поэтому проблема заключается в том, что продукты являются массивом, и у меня много проблем с ним, например, разбиение на страницы,where (), orderBy и ...

Я хочу изменить свой метод на более удобный, чтобы я мог использовать его для вышеуказанных задач

Кстати, у меня есть имя метода products (), которое дает всепродукты категории

вот мой метод, который дает мне множество продуктов

public function getAllCategoriesProducts($cat_id){
  $allProducts = [];
  foreach(ProductCategory::find($cat_id)->products()->get() as $product){
    $allProducts[] = $product;
  }
  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;
}

1 Ответ

0 голосов
/ 10 ноября 2019

Пожалуйста, посмотрите, это лучший способ сделать это. https://serversideup.net/eloquent-parent-child-relationship-laravel/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...