📅  最后修改于: 2023-12-03 15:17:12.526000             🧑  作者: Mango
当使用Laravel中的Eloquent ORM时,您可能会想将结果转换为数组形式,以便更轻松地处理和输出。本文将介绍如何将Eloquent结果转换为数组键值形式。
使用toArray()
方法可将Eloquent结果转换为数组形式。但是,默认情况下,它返回的只是对象属性数组,而不是键值对数组。
在下面的例子中,我们将使用Product
模型来演示如何将结果转换为数组键值对形式。假设我们有一个products
表,其中包含id
,name
和price
三个字段。
use App\Models\Product;
$products = Product::all();
// 转换为数组
$productsArray = $products->toArray();
dd($productsArray);
该代码将输出以下内容:
array:2 [
0 => array:3 [
"id" => 1
"name" => "Product 1"
"price" => 10.0
]
1 => array:3 [
"id" => 2
"name" => "Product 2"
"price" => 20.0
]
]
可以看到,结果只是一个属性数组,其中每个元素都是一个对象属性数组。
现在,我们将演示如何将结果转换为键值对数组。我们可以使用pluck()
方法来选择要使用的键和值。
$productsKVArray = $products->pluck('price', 'name')->toArray();
dd($productsKVArray);
该代码将输出以下内容:
array:2 [
"Product 1" => 10.0
"Product 2" => 20.0
]
在上面的代码中,我们使用pluck()
方法来选择name
属性作为键和price
属性作为值。然后,我们使用toArray()
方法将结果转换为数组。
通过使用pluck()
和toArray()
方法,可以轻松地将Eloquent结果转换为数组形式,并选择要使用的键和值。这使得进一步处理和输出结果变得更加容易。