如何根据另一个 collection 的列获取 collection?

How to get a collection based on column from another collection?

假设我有 collection 辆汽车和 collection 辆事故车。其中Accidentscollection,有一栏car_id,具体是什么车出了事故。有什么办法解决这个问题,让所有 collection 都在哪里...?

这是我到目前为止所取得的成就。

// Returns an array of numbers
$accidents = Accidents::get()->pluck('car_id')
    ->toArray();

// Returns only one row from collection
$cars = Cars::where('id', $accidents)->get(); 

试试下面的代码,你必须使用whereIn来匹配数组的集合。

$cars = Cars::whereIn('id', $accidents)->get(); 

或者,既然你已经在做协会了。您不妨让自己轻松一点,只需在模型中建立关系并建立一对多关系。

https://laravel.com/docs/8.x/eloquent-relationships#one-to-many

然后您需要做的就是使用 with() 和 运行 a 调用 eloquent 中的关系,其中意外事件等于或大于 1。 这会将所有内容都放在一个很好的集合中,供您在前面进行迭代。

文档中有一些很好的示例。