在这种情况下,如何使用Laravel存储多个数据?

时间:2019-08-18 12:13:21

标签: php laravel

我正在使用axios发送一个数据数组,如下所示:

originalData:Object
  19:"ae"
  20:"aze"
  21:"aze"
  22:"aze"
  23:"aze"
  24:"aez"
  79:"az"
  80:"aza"
  81:"az"
  83:"az"

每个ID对应于一个问题的ID。 id的每个文本都对应他的答案。

我的表answers包含以下结构:

idansweruser_idquestion_id

我想在数据库中为每个答案创建新行。 id必须存储在question_id列中,文本必须存储在answer

列中

我尝试过这样的事情:

public function store(Request $request)
    {
        $data = $request->all();

        $finalArray = [];

        foreach ($data as $key => $value) {
            array_push($finalArray, [
               'user_id' => auth()->user()->id,
               'question_id' => ??,
               'answer' => ??
            ]);
        }

        Answer::insert($finalArray);
    }

我不知道这是否是正确的方法。无论如何,在这种情况下,我都不知道如何获取id和问题的文本。

你能帮我吗?

谢谢

1 个答案:

答案 0 :(得分:1)

我认为您可以这样做:

public function store(Request $request)
    {
        $data = $request->all();
        foreach ($data as $key => $value) {
            Answer::create([
                 'user_id' => auth()->user()->id,
                 'question_id' => $key, // $key will be 19, 20...
                 'answer' => $value // $value 'ae', 'aze' ...
            ]);
        }
    }

这应该工作正常。如果您有任何错误,请在此处提供。

祝你好运!