使用一对多关系保存数据
Save Data using One to Many relationshiop
我有几个问题的答案。我提交的问题输入如下。
<input name="question" type="text" class="form-control" placeholder="Place your question here">
我正在动态添加多个答案。我的答案输入框如下所示。
<input name="answer[]" type="text" class="form-control" placeholder="Place your answer here">
我使用 'id'、'question'、'created_at'、'updated_at'.
这些列提出了问题 Table
我使用 'id'、'question_id'、'answer'、'created_at'、'updated_at'、[=14= 这些列做出了回答 Table ]
我正在使用下面的代码来保存问题和答案。
public function add_form(Request $request)
{
$question = Question::create(['question' => request()->input('question')]);
$question->answers()->create([request()->input('answer')]);
}
我遇到了以下错误。
SQLSTATE[HY000]: General error: 1364 Field 'answer' doesn't have a default value (SQL: insert into `answers` (`question_id`, `updated_at`, `created_at`) values (4, 2021-08-05 11:56:16, 2021-08-05 11:56:16))
首先将单维数组映射到多维数组。
$answer=collect(request()->answer)->transform(function ($item){
return ['answer'=>$item];
})->toArray();
同时保存
$question->answers()->createMany($answer);
我有几个问题的答案。我提交的问题输入如下。
<input name="question" type="text" class="form-control" placeholder="Place your question here">
我正在动态添加多个答案。我的答案输入框如下所示。
<input name="answer[]" type="text" class="form-control" placeholder="Place your answer here">
我使用 'id'、'question'、'created_at'、'updated_at'.
这些列提出了问题 Table我使用 'id'、'question_id'、'answer'、'created_at'、'updated_at'、[=14= 这些列做出了回答 Table ]
我正在使用下面的代码来保存问题和答案。
public function add_form(Request $request)
{
$question = Question::create(['question' => request()->input('question')]);
$question->answers()->create([request()->input('answer')]);
}
我遇到了以下错误。
SQLSTATE[HY000]: General error: 1364 Field 'answer' doesn't have a default value (SQL: insert into `answers` (`question_id`, `updated_at`, `created_at`) values (4, 2021-08-05 11:56:16, 2021-08-05 11:56:16))
首先将单维数组映射到多维数组。
$answer=collect(request()->answer)->transform(function ($item){
return ['answer'=>$item];
})->toArray();
同时保存
$question->answers()->createMany($answer);