问题标签 [laravel-collection]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2967 浏览

laravel - 按日期过滤 Laravel 集合

在下面给出的代码中$allZip["assigned_date"]具有 value 2016-07-27 18:12:26。当我尝试将它与created_at也是时间戳字段的字段进行比较时,结果是一个空集合。

数据库中存在zip字段匹配值 from$allZip["zip"]created_at字段值匹配的数据2016-07-19 18:12:26。所以它应该返回集合中的一项,但返回一个空集合。为什么?

0 投票
1 回答
8823 浏览

php - 在 Laravel 中查询集合

我是否正确地知道当我查询 Laravel 集合时,它不会查询数据库,而是对已经获取的内容执行查询?

例如,我有一个返回集合的关系:

以下代码是查询数据库还是使用 php 工具与集合一起工作?

而且,据我了解,如果我查询关系,则将查询数据库,而不是使用已经获取的结果:

所以基本上,$role->permissions - 使用“离线”获取的结果,但$role->permissions() - 查询数据库

什么方式通常更有效,什么时候?

0 投票
3 回答
546 浏览

laravel - Laravel 5.2 推送到集合中更深的索引数组

有没有一种方法可以在不先将集合转换为数组的情况下,对集合上更深的索引进行更改/合并?

我有一个带有 4 个索引的 $collection,它们都包含 $arrays 所以为了推入数组我必须这样做:

但是,我希望有更好的方法,这样我就不必在继续之前重新收集(...)原始 $collection ,如下所示,我知道这行不通,但形成了一个例子比上面不那么尴尬的事情:

0 投票
3 回答
4060 浏览

sorting - 如何在 Laravel 5.3 中对包含非拉丁字符的 UTF-8 字符串集合进行排序?

伙计们,我想按字母顺序对以下嵌套的字符串进行排序collection

我希望

我得到了

我看到了一些 PHP 线程,但我很好奇是否有任何 Laravel 解决方法。谢谢。

0 投票
1 回答
8516 浏览

php - Laravel Eloquent sum 关系的列通过其他关系

假设我有这些模块:

  • 优惠券
  • 订单 (.., coupon_id)
  • 项目(...,order_id,价格)

还有这些关系:

  • Coupon 有很多 Order
  • Order 有很多 Item

到现在为止还挺好。

现在我想对属于优惠券的订单的商品价格求和。所以我想过做这样的事情:

好吧,它不会起作用,因为orders()方法返回一个Collection关系:

我收到一条错误消息,指出item财产受到保护。我发现它与我的Item模块无关,只是因为Collectionhas protected $items = [];.

所以,在我清除了一些事实之后,我的问题/问题是,我怎样才能总结属于items->price的?ordersCoupon


当然,我可以通过执行这样的 foreach 循环来实现我的目标:

但我正在寻找更清洁的解决方案。任何人?

0 投票
4 回答
10148 浏览

php - Laravel 5 集合问题:不等于

我目前正在开发一种用户可以插入 excel 文件的模式。如果记录是新的或与数据库中存在的记录相同,则系统的任务是上传和/或添加新的数据库记录。但它还需要一个删除函数来删除那些 slug 列与 name 列不同的记录。

目前我正在使用Laravel 5.3,这是我现在的控制器

上面的 dd 返回所有产品,因此集合查询无法正常工作(有关我尝试在此集合中运行的原始 SQL,请参见下文)

这是产品型号

这是我基本上要在集合中使用的 PHPMyAdmin 原始 SQL(有效):

我希望有人能帮助我摆脱这个坑。为了完成这件事,我已经在互联网的浪潮中航行了大约 12 个小时。

~ nitsuJ

0 投票
0 回答
960 浏览

php - 将原始 MySql 查询结果转换为 Laravel 集合(hydraRaw)?

我正在尝试使用原始查询从数据库中收到的结果让 Laravel 分页工作:

但是虽然结果是一个普通数组,但 paginate() 函数不起作用。

我在文档中找到了 hydraRaw 方法,但无论我如何尝试它都会引发错误。

谢谢!

0 投票
4 回答
2439 浏览

php - 如何检查集合是否包含 Laravel 中的值

我无法检查以下集合是否包含数据

但如果仍然没有任何东西,$users我就没有得到其他部分。

0 投票
2 回答
41 浏览

php - 从其他表计数

guid我在计算不为空的设备数量时遇到问题。

它需要按用户获取所有商店user_id,然后计算所有guid不为空的设备。

当我这样做时它起作用:

但它需要计算guid不为空的位置。

我也很想知道是否有其他reduce方法。

0 投票
5 回答
25583 浏览

laravel - 如何访问 Laravel 集合中的第 n 个项目?

我想我故意提出重复的问题是在打破所有规则......

另一个问题有一个公认的答案。它显然解决了提问者的问题,但它没有回答标题问题。

让我们从头开始 - 该first()方法的实现大致如下:

它显然比采用$collection[0]或使用其他建议的方法更稳健。

即使集合中有 20 个项目,也可能没有具有索引0或索引的项目。15为了说明这个问题,让我们从文档中取出这个集合:

现在,我们是否有任何可靠(最好是简洁)的方法来访问第 n 个项目$keyed

我自己的建议是:

但这会在$keyed->last()任何时候给出错误的项目 () $n > $keyed->count()null如果它存在并且它不只是行为,我们如何获得第 n 个项目first()

编辑

为了澄清,让我们考虑这个集合:

第一项是$col->first()。如何获得第二个?

$col->nth(3)应该返回'c'(或者'c'如果从 0 开始,但这将与 不一致first())。$col[3]不起作用,它只会返回一个错误。

$col->nth(7)应该返回null,因为没有第七项,只有四个。$col[7]行不通,它只会返回'd'

您可以将问题改写为“如何在 foreach 订单中获取第 n 个项目?” 如果对某些人来说更清楚的话。