首页 > 解决方案 > 在 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');

                }

问题是当我回显事件时,我只看到一个俱乐部而不是所有俱乐部的事件,这几乎就像我的循环没有迭代一样。

标签: phplaraveleloquent

解决方案


你可以通过这样做得到结果。你不需要循环。

$clubs = Club::where('city', $city)->get();
$club_ids = $clubs->pluck("id")->toArray();
$events = Event::wherein('club_id',$club_ids)->sortBy('date')->get();

推荐阅读