laravel - 集合如何在一个运算符中使用 map 和 filter 方法?
问题描述
在 Laravel 6 中使用集合是否可以在一个操作符中使用 map 和 filter 方法?
我试过了:
$dataItems = ItemModel
::getById($id)
->get()
->map(function ($item) {
$item['field1'] = 'value1';
$item['field2'] = 'value2';
...
if($conditionTrue) {
return $item;
}
return false;
})
->toArray();
但是当 $conditionTrue 为假时,我在结果数组中得到了空元素。
我可以做吗 ?
谢谢!
解决方案
如果您真的出于某种原因不想只调用filter()
,这将删除任何等效于 的项目false
,在您调用之后,map(...)
您可以使用回调filter
,因为这些项目是对象:
->filter(function ($item) {
$item['field1'] = 'value1';
$item['field2'] = 'value2';
...
return $condition;
})
推荐阅读
- debugging - 无法调试 Blazor Webassembly
- regex - 最后一个斜杠后的正则表达式选择第一个数字单独的 1 或 2 个字母的子字符串
- java - 如何将电报机器人从 intellij 部署到 heroku?我使用 Maven 项目中的 Java 编写代码
- python - 熊猫数据框 - 按字符串过滤/选择列是否保留顺序?
- python - 了解 PyTorch 中的累积梯度
- wordpress - wc_get_products 和 woocommerce 中的分页
- javascript - 在阅读之前等待文本文件的更新 - Javascript/NodeJS
- java - 对于输入字符串:“Mat [ 0*0*CV_32FC1, isCont=true, isSubmat=false, nativeObj=0x78a0dff700, dataAddr=0x0 ]” - 填充矩阵时出错
- c - 为什么“输入名称”输出被跳过,当我在输出中输入“关闭”时,它一直在循环
- reactjs - React Redux 状态将在使用 Nginx 更改路由时初始化