Мне нужно создать API для вопросника. Есть 3 таблицы/модели Test, Question, Answer.
Все связаны цепочкой один ко многим
Есть
Route::post('test', 'Api\TestController@createTest');
В TestController описываю метод createTest(Request $request).
Предполагается, что данные вводятся так: Название теста (в таблице tests) и один или несколько вопросов (в таблице questions). И вот вопрос: Как организовать этот метод что бы сразу в 2 таблицы записывались данные, а если несколько вопросов то все связывались с тем же тестом?
public function createTest(Request $request)
{
$rules = [
'name' => 'required',
'question' => 'required',
];
$validator = Validator::make($request->all(), $rules);
if ($validator->fails()) {
return response()->json($validator->errors(), 400);
}
$test = Test::create($request->only('name'));
// а тут как-то еще нужно и вопросы записать..
return response()->json($test, 201);
}
class Test extends Model
{
public function questions()
{
return $this->hasMany(Question::class);
}
protected $fillable = [
'name',
];
}
class Question extends Model
{
public function test()
{
return $this->belongsTo(Test::class);
}
public function answers()
{
return $this->hasMany(Answer::class);
}
protected $fillable = [
'test_id',
'body',
];
}