laravel 7将对象数组插入数据库

laravel 7将对象数组插入数据库,laravel,laravel-7,Laravel,Laravel 7,这是我的数据 answers: [ {text: "dsfdsfjds", correct: "false"} {text: "asjdkjsa", correct: "true"} {text: "sadasdsad", correct: "false"} } 我试过的 $answers[] = $request->answers; $question

这是我的数据

answers: [
{text: "dsfdsfjds", correct: "false"}
{text: "asjdkjsa", correct: "true"}
{text: "sadasdsad", correct: "false"}
}
我试过的

$answers[] = $request->answers;
        $question = Question::create([
            'question' => $request->question,
            'date' => $request->date
        ]);
        if($question) {
            foreach($answers as $ans) {
                $anss = Answer::create([
                    'question_id' => $question->id,
                    'text' => $ans->correct,
                    'correct' => $ans->correct,
                ]);
            }
        }
我得到这个错误

Trying to get property 'correct' of non-object"

请指导我如何将数据插入数据库。

我想您的问题在于这一行:

$answers[] = $request->answers;
请删除括号,然后重试:

$answers = $request->answers;

根据您的描述,我假设answers是一个json对象数组。您应该解码json对象以访问其属性。将其添加到foreach循环的开头

$json_decoded_answer = json_decode($ans);
然后你就可以这样做了

$anss = Answer::create([
                'question_id' => $question->id,
                'text' => $json_decoded_answer->correct,
                'correct' => $json_decoded_answer->correct,
            ]);

尝试获取非对象的属性“正确”

试着这样做

$answers = $request->answers;
        $question = Question::create([
            'question' => $request->question,
            'date' => $request->date
        ]);
        if($question) {
            foreach($answers as $ans) {
                $anss = Answer::create([
                    'question_id' => $question->id,
                    'text' => $ans['text'],
                    'correct' => $ans['correct'],
                ]);
            }
        }

我刚刚将此
$answer[]
更改为
$answer
并使用了一个数组而不是object

您是否
转储了
$ans
以查看它是什么类型的?您使用的是带键的数组,在循环中使用$answer作为$key=>$valuevar\u转储($ans);也使用这个$ans['correct']而不是$ans->->correct
转储($ans)
dd($request->answers);请将其添加到问题中