簡體   English   中英

Laravel 5.6使用Eloquent ORM將所有行作為值數組

[英]Laravel 5.6 get all rows as arrays of values using Eloquent 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實現這一目標?

您可以使用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"]]

使用pluck方法來實現這一點

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

我收到有關內部toArray()錯誤,所以這對我toArray()

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM