Я создал таблицу для сохранения связи между постами и категориями.
Schema::create('post__post_category_relations', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->integer('post_id')->unsinged();
$table->integer('category_id')->unsinged();
});
Это таблица категорий:
Schema::create('post__categories', function (Blueprint $table) {
$table->engine = 'InnoDB';
$table->increments('id');
$table->integer('parent_id')->nullable();
$table->timestamps();
});
И я использовал отношение eloquent, чтобы получить все посты категории.Это модель категории:
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 show_category($slug){
$category = $this->category->findBySlug($slug);
$childrens = $category->children;
$posts = ...?
return view('post.category.show',compact('posts','category'));
}
Я не хочу объединять сообщения родительской категории и категории детей в переменную $ post.У кого-нибудь есть хорошая идея?
Sr, мой английский такой плохой.Спасибо!