首页 > 解决方案 > laravel 选择没有列名的模型值

问题描述

我想从模态中选择数据然后只获取值并将值设置为数据表。因为列是动态的,所以我不能在结果中包含列名

我试过了

public function test()
    {
        return Model::pluck('id','name');
    }

但结果是这样的

{ 
    1 : "name 1", 
    2 : "name 2" 
}

我需要结果是

[
    { 1, "name 1" },
    { 2, "name 2" }
]

使用模型::all(['id', 'name']);

[
    { "id" : "1" , "name" : "name 1" },
    { "id" : "2" , "name" : "name 2" }
]

如何删除“id”和“name”?

标签: phplaravellaravel-5eloquent

解决方案


你不能有没有键的对象值。因此,您可以做的最接近的事情就是将它们作为数组返回。

$all = Model::all(['id', 'name'])->map(function($model) {
    return [model->id, model->name];
})->toArray();

这将导致:

[
    0 => [
        0 => 1,
        1 => 'name 1'
    ],
    1 => [
        0 => 2,
        1 => 'name 2'
    ]
]

请注意,这些0 =>不是键,它们是数组索引。所以你可以忽略它们。


推荐阅读