Я хочу показать все сообщения для каждой категории - PullRequest
0 голосов
/ 21 октября 2019

У меня есть такая база данных База данных

Мои Категории.php

public function Subcategory()
{
    return $this -> hasMany('App\Subcategories', 'category_id');
}

Мои Подкатегории.php

public function Post()
{
    return $this -> hasMany('App\Posts', 'subcategory_id');
}

public function Category()
{
    return $this -> belongsTo('App\Categories', 'category_id');
}

Мои сообщения.php

public function Subcategory()
{
    return $this -> belongsTo('App\Subcategories', 'subcategory_id');
}

Я хочу взять все сообщения из каждой категории и показать их на моей странице "индекса", что мне делать?

1 Ответ

1 голос
/ 21 октября 2019

Вы можете использовать это отношение: https://laravel.com/docs/master/eloquent-relationships#has-many-through

Categories.php

public function Subcategory()
{
    return $this -> hasMany('App\Subcategories', 'category_id');
}

public function posts()
{
    return $this->hasManyThrough('App\Posts', 'App\Subcategories');
}

Subcategories.php

public function Post()
{
    return $this -> hasMany('App\Posts', 'subcategory_id');
}

public function Category()
{
    return $this -> belongsTo('App\Categories', 'category_id');
}

Posts.php

public function Subcategory()
{
    return $this -> belongsTo('App\Subcategories', 'subcategory_id');
}

Затем вы можете вызывать Категории с соответствующими сообщениями следующим образом:

Categories::with('posts')->get()

Примечание: Вы должны использовать стандартные соглашения об именах, используя Модели в единственном числе. https://webdevetc.com/blog/laravel-naming-conventions

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