[英]Laravel - save json to database column vs Call to a member function save() on array
我正在获取 Laravel API 中的数据,我想将其添加到表中某一列内的 JSON 中。 但是我收到一个错误。 你能帮我把我的JSON存入数据库栏吗?
在我的用户表中,我有一个名为 answer_history 的列,其中包含 JSON
[
[
{
"quizID": 1,
"questionID": 1,
"selectedAnswer": "Green",
"correctAnswer": false
},
{
"quizID": 1,
"questionID": 2,
"selectedAnswer": "Skin",
"correctAnswer": false
},
{
"quizID": 1,
"questionID": 3,
"selectedAnswer": "Pup",
"correctAnswer": true
}
]
]
这是我更新专栏的代码
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\User $user
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$answers = User::find($id)->answer_history;
$newAnswers = $request->answerHistory;
$answers[] = $newAnswers;
$answers->save();
return $answers;
}
我收到这个 json
[
{
"quizID": 1,
"questionID": 1,
"selectedAnswer": "White",
"correctAnswer": false
},
{
"quizID": 1,
"questionID": 2,
"selectedAnswer": "Keratin",
"correctAnswer": true
},
{
"quizID": 1,
"questionID": 3,
"selectedAnswer": "Cub",
"correctAnswer": false
}
]
如果我评论 $answer->save(),我的浏览器-.network->response 中的响应是
[
[
{
"quizID": 1,
"questionID": 1,
"selectedAnswer": "Green",
"correctAnswer": false
},
{
"quizID": 1,
"questionID": 2,
"selectedAnswer": "Skin",
"correctAnswer": false
},
{
"quizID": 1,
"questionID": 3,
"selectedAnswer": "Pup",
"correctAnswer": true
}
],
[
{
"quizID": 1,
"questionID": 1,
"selectedAnswer": "White",
"correctAnswer": false
},
{
"quizID": 1,
"questionID": 2,
"selectedAnswer": "Keratin",
"correctAnswer": true
},
{
"quizID": 1,
"questionID": 3,
"selectedAnswer": "Cub",
"correctAnswer": false
}
]
]
如果没有,我会收到此错误
“调用数组上的成员 function save()”
我在我的 model 中添加了 cast
protected $casts = [
'email_verified_at' => 'datetime',
'answer_history' => 'array'
];
这是因为变量 $answers 是您的 model 的值。您需要将其保留为您的 model
尝试这个
public function update(Request $request, $id)
{
$answers = User::find($id);
$newAnswers = $request->answerHistory;
$answers->answer_history[] = $newAnswers;
$answers->save();
return $answers;
}
Function save() 来自User
model 而不是值...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.