php - 在 Laravel Eloquent 上运行 for 循环迭代
问题描述
我有一个模型 $club 与另一个模型 $events 相关。
我使用这个查询俱乐部的数据库
$clubs = Club::get()->where('city', $city);
然后对于事件,我试图复制与所有俱乐部相关的所有事件
foreach ($clubs as $club)
{
$events = Event::where('club_id', $club->id)->get()->sortBy('date');
}
问题是当我回显事件时,我只看到一个俱乐部而不是所有俱乐部的事件,这几乎就像我的循环没有迭代一样。
解决方案
你可以通过这样做得到结果。你不需要循环。
$clubs = Club::where('city', $city)->get();
$club_ids = $clubs->pluck("id")->toArray();
$events = Event::wherein('club_id',$club_ids)->sortBy('date')->get();
推荐阅读
- swift - 无法引用 Firestore 文档路径
- wordpress - 有可能用数学运算做一个 WP_Query 吗?
- javascript - 在 React 中获取元素 onClick 的背景颜色
- java - SharedPreferences getString 返回 null
- python - 使用 pyspark 从 CSV 文件在 hive 中创建表的更好方法
- database-design - 计算不是 PK 的列 - Cassandra
- android - 单击推断约束时图像按钮错位
- vba - Visio:从宏访问自定义颜色变体?
- r - 在 facet_wrap 中处理可变轴比例
- oracle - 在 SQL*Plus 工作时,Oracle SQL Developer 无法连接到 Oracle 数据库