laravel - 我想显示每个类别的所有帖子
问题描述
我有一个像这样的 数据库数据库
我的 Categories.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');
}
我想从每个类别中获取所有帖子,并将它们显示在我的“索引”页面上,我该怎么办?
解决方案
您可以使用这种关系:https ://laravel.com/docs/master/eloquent-relationships#has-many-through
分类.php
public function Subcategory()
{
return $this -> hasMany('App\Subcategories', 'category_id');
}
public function posts()
{
return $this->hasManyThrough('App\Posts', 'App\Subcategories');
}
子类别.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');
}
然后你可以用它们各自的帖子调用类别,如下所示:
Categories::with('posts')->get()
注意:您应该使用标准命名约定,以单数形式使用模型.. https://webdevetc.com/blog/laravel-naming-conventions
推荐阅读
- python - Pandas 根据行和列进行条件检查
- python - 连接一个 3 级 MultiIndex
- c++ - C++ 指针没有更新?
- java - 16 位以上的双变量给出错误:整数太大
- javascript - 从 Meteor js 中的每一行获取值
- c# - ContentControl 背景,BorderBrush 在 Uwp 中不会更改
- rpm - 为 scylladb 创建本地 yum 存储库并将其安装在专用网络中?
- azure-devops - 如何将 PR 与不同订阅中的工作项相关联
- algorithm - 在非常大的条目的哈希表中维护 O(1)
- html - 如何使滚动条的高度灵活