Как преобразовать объект в массив, используя php или javascript? - PullRequest
0 голосов
/ 17 июня 2020

Я использую Полный календарь для создания событий. Это мой бэкэнд-код в моем контроллере, я использую Laravel.

public function index() {

        $myInterviews = Interview::all()->where('candidate_user_id', Auth::user()->id)->first();
        $interviews = $myInterviews->toArray();

        return Response::json(array(
            'events' => $interviews,
        ), 200);

    }

По какой-то причине, когда есть только одно событие, данные json возвращаются как объект вместо массив, поэтому событие не отображается в моем календаре, потому что с полным календарем данные должны находиться внутри массива, а не объекта. Если есть более одного события, все работает нормально, потому что данные json становятся массивом.

Как вы можете видеть выше, я пытался использовать метод toArray() для преобразования данных, и если я d ie и дамп $interviews показывает, что это массив, что означает, что проблема, похоже, связана с частью Response::json.

Я также попытался преобразовать ответ на стороне Vue js, используя Object.keys(obj) , но это тоже не сработало, возвращенные данные все еще были объектом.

Могу ли я что-нибудь еще попробовать?

1 Ответ

1 голос
/ 17 июня 2020

В JS:

// obj can be an array or an object
const arr = [].concat(obj)
...