首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel照明\数据库\雄辩\收藏

Laravel照明\数据库\雄辩\收藏
EN

Stack Overflow用户
提问于 2018-05-12 10:12:05
回答 3查看 11K关注 0票数 1

我通常用雄辩的拉勒维尔分别挑选我的物品。

代码语言:javascript
运行
复制
$b = Booking::where("id","=",$id)->get();

我得到的是一个照明\数据库\雄辩\集合与一个项目。稍后我将它们放在一个数组中,这样我就有了一个由这些照明\数据库\雄辩\Collection对象组成的数组。

然而,有时我需要更多的,所以我做了这样的事情:

代码语言:javascript
运行
复制
$bs = Booking::where("date","=",$today)->get();

现在这是一个包含多个项的集合。是否有一种简单的方法可以用单个项目更改照明\数据库\雄辩\集合中多个项目的照明\数据库\雄辩\集合?

我当然能做到:

代码语言:javascript
运行
复制
$bs = Booking::where("date","=",$today)->get();
foreach ($bs as $i=>$b) $bs2[] = Booking::where("id","=",$b->id)->get();

但是再次从DB中选择似乎是一个非常愚蠢的解决方案。

编辑:

如果我这样做,我会:

  • $bs作为一个‘收藏’-对象容纳15‘预订’-物品在里面。
  • $bs1作为一个包含15个“集合”的数组-每个对象都有一个“预订”-对象在里面。(这就是我想要的)

->toArray()创建一个包含15个数组的数组。这不是我想要的-我需要这些东西。正如雄辩者提供的特性一样,日期字段自动成为一个DateTime对象

EN

回答 3

Stack Overflow用户

发布于 2018-05-12 14:07:54

使用toArray()函数,你就可以出发了,

代码语言:javascript
运行
复制
$bs = Booking::where("date","=",$today)->get()->toArray();

现在,您将拥有从DB返回的数据数组。

票数 4
EN

Stack Overflow用户

发布于 2018-05-12 18:41:35

你可以这样做:

代码语言:javascript
运行
复制
$bs = Booking::where("date","=",$today)->get();
foreach ($bs as $i=>$b) {
    $bs2[] = collect([$b]);
}

这为您提供了一个Illuminate\Support\Collection集合数组,每个集合包含一个项。

如果您需要Illuminate\Database\Eloquent\Collection集合:

代码语言:javascript
运行
复制
$bs2[] = new \Illuminate\Database\Eloquent\Collection([$b]);
票数 0
EN

Stack Overflow用户

发布于 2022-02-04 17:18:40

试试看以下几点。

代码语言:javascript
运行
复制
$bs = Booking::where("date", "=", $today)->get();
$new_bs = $bs->toArray();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50305099

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档