laravel选择没有列名的模型值

时间:2019-04-30 09:29:06

标签: php laravel laravel-5 eloquent

我想从模式中选择数据,然后仅获取值并将其设置为数据表。由于列是动态的,因此我无法在结果上显示列名称

我尝试

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

但是结果是这样的

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

我需要结果

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

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

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

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

2 个答案:

答案 0 :(得分:0)

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

如果要获取idname作为键和值,请使用pluck,如果只想检索这两列,最好使用only。 / p>

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

答案 1 :(得分:0)

没有键就不能有对象值。因此,您最能做的是将它们作为数组返回。

$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 =>不是键,而是数组索引。因此您可以忽略它们。