如何使用Laravel 5将嵌套对象插入MongoDB?

时间:2019-05-16 00:29:54

标签: php laravel mongodb

我正在使用Laravel 5和基于MongoDB的Eloquent Jenssegers开发用于保存和获取数据的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);
}

要插入统计信息,我尝试在store函数中执行以下操作:

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

但是我得到"Stats:null"的响应,并且名字和姓氏都可以插入。

我希望插入数据,就像上面显示的Player对象一样。

1 个答案:

答案 0 :(得分:0)

使用键创建数组。

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);
}