Как использовать Laravel для загрузки моделей, принадлежащих к тому же классу - PullRequest
0 голосов
/ 30 мая 2018

У меня есть следующий код:

В модели категории

public function posts()
{
  return $this->belongsToMany(Post::class, 'post__post_category_relations', 'category_id');
}

public function children()
{
  return $this->hasMany(Category::class, 'parent_id');
}

В контроллере категории:

public function index(Category $category){
  $category_childrens = $category->children;
  $posts = ???;
  return view('show.posts',compact('posts'));
}

Я пытаюсь получить $postsсвязаны с $category_childrens и передать их на мой взгляд.

1 Ответ

0 голосов
/ 30 мая 2018

Я нашел решение здесь:

Laravel получает все продукты из вложенных в бесконечность категорий

Мой скрипт:

В категории Модель:

public static function getAllPosts($category, $posts = null)
{
    if ($posts == null) {
        $posts = collect();
    }
    $posts = $posts->merge($category->posts);

    foreach($category->children as $child){
        $posts = self::getAllPosts($child, $posts);
    }

    return $posts;
}

В контроллере:

....
$category = $this->category->findBySlug($_GET['category_name']);

$posts = Category::getAllPosts($category);

return view('post::admin.posts.index', compact('posts','category','categories'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...