gpt4 book ai didi

arrays - laravel array_map 得到错误 "array_map(): Argument #2 should be an array"

转载 作者:行者123 更新时间:2023-12-01 00:47:07 27 4
gpt4 key购买 nike

我是 Laravel 的新手。为什么我总是收到错误:

array_map(): Argument #2 should be an array ?



而我在此方法上分配参数数组?

这是我的示例代码:

$products = Category::find(1)->products;

笔记 :
1个类别有很多产品

这是来自查询的数组:
[{
"id": "1",
"name": "action figure",
"created_at": "2015-11-09 05:51:25",
"updated_at": "2015-11-09 05:51:25"
}, {
"id": "2",
"name": "manga",
"created_at": "2015-11-09 05:51:25",
"updated_at": "2015-11-09 05:51:25"
}]

当我尝试以下代码时:

$results = array_map( function($prod) {
return $prod.name;
}, $products);

我得到如下错误:

"array_map(): Argument #2 should be an array"

最佳答案

你应该写

$results = array_map(function ($prod) {
return $prod->name;
}, $products->toArray());

因为 $products是一个集合而不是一个数组。

如果您只想获得产品名称列表,请使用 pluck方法

$results = $products->pluck('name')

在较新版本的 Laravel 中,您应该使用 $products->all();而不是 toArray因为在 Eloquent 集合的情况下, toArray也会尝试将您的模型转换为数组。 all将按原样返回您的模型数组。

话虽如此,既然您在收藏中,您也可以使用 map像这样的方法(这与在您的情况下使用 pluck 完全相同)

$products->map(function ($product) {
return $product->name;
});

关于arrays - laravel array_map 得到错误 "array_map(): Argument #2 should be an array",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33605503/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com