我通常会用Eloquent Laravel选择我的项目
$b = Booking::where("id","=",$id)->get();
我得到的是一个项目的Illuminate \ Database \ Eloquent \ Collection。 我稍后将它们放在一个数组中,以便我有一个这些Illuminate \ Database \ Eloquent \ Collection对象的数组。
然而,有时我需要更多,所以我做了类似的事情:
$bs = Booking::where("date","=",$today)->get();
现在这是一个包含多个项目的集合。有没有一种简单的方法可以在单个项目的Illuminate \ Database \ Eloquent \ Collection数组中更改Illuminate \ Database \ Eloquent \ Collection中的几个项目?
当然可以这样做:
$bs = Booking::where("date","=",$today)->get();
foreach ($bs as $i=>$b) $bs2[] = Booking::where("id","=",$b->id)->get();
但是从DB再次选择似乎是一个非常愚蠢的解决方案。
编辑:
如果我这样做,我有:
- > toArray()创建一个包含15个数组的数组。这不是我想要的 - 我需要这些物品。由于雄辩提供的功能,如日期字段自动为DateTime对象
答案 0 :(得分:1)
使用toArray()
功能,您就可以了,
$bs = Booking::where("date","=",$today)->get()->toArray();
现在您将从DB返回数据数组。
答案 1 :(得分:0)
你可以这样做:
$bs = Booking::where("date","=",$today)->get();
foreach ($bs as $i=>$b) {
$bs2[] = collect([$b]);
}
这会为您提供一系列Illuminate\Support\Collection
个集合,每个集合都有一个项目。
如果您需要Illuminate\Database\Eloquent\Collection
个收藏集:
$bs2[] = new \Illuminate\Database\Eloquent\Collection([$b]);