Ожидается массив, получено предупреждение об объекте, когда возвращается коллекция Laravel, которая начинается с ненулевого индекса - PullRequest
0 голосов
/ 09 октября 2018

В моем приложении laravel + vue я возвращаю отфильтрованную коллекцию:

public function index()
{
    $orders = Order::all();
    $filteredOrders = $orders->filter(function($order){
        return $order->hasLoggedInUserFromDeliveryEnd();
    });
    return $filteredOrders;       
}

А на стороне клиента я использую vuetify datatable для заполнения данных:

<template slot="items" slot-scope="props">
    <td class="text-xs-left">{{ props.item.order_code }}</td>
</template>

Когда коллекция возвращает правильно проиндексированную коллекцию (имеется в виду, что она имеет нулевой индекс), данные отображаются правильно, но если это не правильно проиндексированная коллекция, я получаю следующую ошибку в консоли:

[Vue warn]: недопустимая проп: проверка типа не выполнена для "предметов" проп.Ожидаемый массив, полученный объект.

найден в

--->

Как сделать коллекцию похожей на массив, а не на объект

1 Ответ

0 голосов
/ 09 октября 2018

Вы всегда можете попытаться использовать toArray для отфильтрованных результатов, чтобы убедиться, что вы всегда получаете массив, например так: filter(...)->toArray().

РЕДАКТИРОВАТЬ: если вы хотите сбросить индексы, вы можетеиспользуйте ->values(), который делает именно это и преобразует результаты в массив.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...