Невозможно использовать массив объектов в POST Laravel. - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть массив объектов, которые были отправлены с помощью функции Vue Axios, которые я хочу зациклить и сохранить в базе данных.Это ответы на вопрос.

Я передал $data, который является массивом объектов ответов (каждый из которых имеет свойство content, correct и mark), а также $id вопроса, которому они принадлежат.,Когда я возвращаю $data,, он показывает мне массив объектов со всеми правильными свойствами.Когда я возвращаю $data[0], я могу получить доступ к первому объекту.Но когда я пытаюсь и foreach как ниже, он жалуется, что $content не существует.Запуск count() на $data также ошибки.Что здесь не так?

Route::post('answers/{id}', function (Request $data, $id) {
    foreach ($data as $value) {
        $post[] = [
            'user_id' => 1,
            'question_id' => $id,
            'content' => $value->content,
            'correct' => $value->correct,
            'mark' => $value->mark
        ]);
    }

    Answer::save($post);
});

1 Ответ

0 голосов
/ 11 февраля 2019

Вы пытаетесь перебрать объект дырки $request, который является экземпляром класса Request .Чтобы получить доступ к полученным значениям, сначала получите их:

// To get all the data
$data = $request->all();
// or..
// To get just a specific value
$data = $request->get('key');
// or..
// only a list of allowed elements
$data = $request->only('here', 'goes', 'your', 'keys');

Итак, в случае, если ваш интерфейс отправляет массив элементов под ключом items.Просто получите их, как указано выше:

$items = $request->get('items');

Тогда вы можете использовать foreach():

$items = $request->get('items');

foreach($items as $item)
{
    // your operations
}

Вы можете прочитать больше о Получение ввода , в документации .

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