Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel 5.6使用雄辩的ORM获取所有行作为值数组_Php_Mysql_Laravel_Eloquent - Fatal编程技术网

Php Laravel 5.6使用雄辩的ORM获取所有行作为值数组

Php Laravel 5.6使用雄辩的ORM获取所有行作为值数组,php,mysql,laravel,eloquent,Php,Mysql,Laravel,Eloquent,我有一个雄辩的查询,返回一个集合: $items = Item::get(['id', 'name']); 当我转换为JSON时,我得到以下信息: [ {id: 1, name: "some name"}, {id: 2, name: "some other name"} ] 我希望得到这样的结果: [ [1, "some name"], [2, "some other name"] ] 如何使用Laravel 5.6和雄辩的ORM实现这一点?使用方法实现这

我有一个雄辩的查询,返回一个集合:

$items = Item::get(['id', 'name']);
当我转换为JSON时,我得到以下信息:

[
    {id: 1, name: "some name"},
    {id: 2, name: "some other name"}
]
我希望得到这样的结果:

[
    [1, "some name"],
    [2, "some other name"]
]
如何使用Laravel 5.6和雄辩的ORM实现这一点?

使用方法实现这一点

$items = \App\Item::pluck('name', 'id');

您可以使用toArray方法

$items = Item::get(['id', 'name'])->map(function($item) {
    return array_values($item->toArray());
});
$item变量的内容如下:

Illuminate\Support\Collection {
     all: [
       [
        1,
        "Peter",
       ],
       [
         2,
         "Juan",
       ],
   ];
以及json表示:

[[1, "Peter"], [2, "Juan"]]

我在内部
toArray()
中遇到错误,因此这对我来说很有效:

$items = Item::get(['id', 'name'])->map(function($item) {
    return array_values((array)$item);
})->toArray();

Pull返回一个对象,ID作为键,名称作为值。这和我想要的不一样,我得到的结果和以前完全一样。键没有被移除,对象仍然存在。但是当我在php的
array\u values
函数中包装您的return语句时,我得到了我想要的:
return array\u values($item->toArray())。您可以编辑您的答案以反映这一点,我将接受您的答案。感谢您的帮助。它不能与just
toArray()
一起使用的原因是,返回的数组是关联数组,必须展平。确切地说,我忘记了放置array\u values函数,我的错,但我很高兴您解决了它