php - 在表之间检索数据(Pivot Laravel 5.5)
问题描述
我有两个表,类别和活动,然后我创建了一个数据透视表 activity_categories,它保存了 activity_id 和 category_id。
我已经创建了用于检索数据的模型,但现在我想从属于类别表中特定类别的活动表中获取所有活动。
我尝试使用循环但无法使其工作。我的代码如下:
//活动模型
public function category()
{
return $this->belongsToMany('App\Category','activity_categories');
}
//控制器
$activities = Activity::all();
foreach ($activities as $activity){
$fun = Activity::all()->where($activity->category->first()->name, 'fun');
dd($fun);
}
return view('layout.home', compact('activities'));
如果我尝试 dd 它返回 null 尽管我在这个类别中有很多数据。注意,一个活动可能属于许多类别
解决方案
您必须在Category
模型中定义反向关系:
public function activity()
{
return $this->belongsToMany('App\Activity', 'activity_categories');
}
然后像这样使用它:
$category = Category::find($id);
$activities = $category->activity;
推荐阅读
- javascript - socket.io client receives everything except for one emitter
- git - Github 拉取请求显示越来越多的旧合并
- javascript - 有没有办法在任何未安装的组件上普遍取消对 setstate 的所有调用或隐藏尝试它产生的错误?
- c - 如何在用户将它们作为输入插入时测量两个字符之间的时间(以秒为单位)
- google-bigquery - 在 BigQuery 中,如何使用项目名称包含的完全限定名称查询表 - 连字符
- r - 如何将闪亮的动作按钮链接到 R 中的情节动画?
- python - python中的输入()和\ n个字符
- pdf - 使用 Ghostscript,如何在合并的 PDF 文件上添加页码
- sql - 需要从稀疏填充的表中估算缺失数据
- python - 在将字符串转换为列表后,如何从我的 nltk 令牌中删除 '\n' 或防止它首先出现?