Как вставить вложенные объекты в MongoDB с помощью Laravel 5? - PullRequest
0 голосов
/ 16 мая 2019

Я использую Eloquent Jenssegers на базе Laravel 5 и MongoDB для разработки API для сохранения и получения данных. У меня есть объект с именем Player, а внутри у меня есть другие вложенные объекты.

Например:

{
  "idPlayer": "1",
  "name": "John",
  "lastname": "Doe",
  "stats": {
    "position": "lorem",
    "profile": "ipsum",
    "technique": {
      "skill": 1
    }
  }
}

Используя Почтальон для тестирования, я мог без проблем вставить "idPlayer", "name" и "lastname", но я не мог понять, как вставить статистику в объект Player.

Вот что я пробовал:

PlayerController.php

public function store(Request $request)
{
    $player->name= $request->input('name');
    $player->lastname = $request->input('lastname');
    $player->save();
    return response()->json($player);
}

И чтобы вставить статистику, я попытался сделать что-то вроде этого внутри функции магазина:

$player->stats = $request->input('position');
$player->stats = $request->input('profile');

Но я получаю "Stats:null" в ответе, имя и фамилия вставляются нормально.

Я ожидаю вставить данные так же, как объект Player, показанный выше.

1 Ответ

0 голосов
/ 16 мая 2019

Создание массива с ключами.

public function store(Request $request)
{
    $player->name = $request->input('name');
    $player->lastname = $request->input('lastname');
    $player->stats = [
      'position' => $request->input('stats.position'),
      'profile' => $request->input('stats.profile'),
    ];
    $player->save();
    return response()->json($player);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...