Formda katılımcıları ekletirken dizi kullanacaksınız:
<div>
<input type="text" name="participant[0][name]">
<input type="text" name="participant[0][title]">
</div>
<div>
<input type="text" name="participant[1][name]">
<input type="text" name="participant[1][title]">
</div>
<div>
<input type="text" name="participant[2][name]">
<input type="text" name="participant[2][title]">
</div>
Burada
participant[0][name] kısmında ilk anahtar, yani 0, önemli. Üstteki HTML'ye dikkatli bakın, 0 1 2 şeklinde gidiyor.
Bu şekilde yaptığınızda controller içerisinde $request->get('participant') şeklinde participant alanını almaya çalışırsanız dizi olarak şöyle bir yapıda alıyorsunuz:
Array
(
[name] => Mehmet YILMAZ
[title] => Prof. Dr.
)
Array
(
[name] => Ali DEMİR
[title] => Doç. Dr.
)
Array
(
[name] => Yasemin MUTLU
[title] => Öğr. Görevlisi
)
Eğitim modeli
Training, katılımcı modeli de
Participant olsun. Training modeli içerisinde de
participants şeklinde Participant modeli ile hasMany ilişkisi kurduğunuzu varsayalım. Şöyle ekleyebilirsiniz:
$training = Training::create($request->validated());
foreach($request->get('participant') as $participant) {
$training->participants()->create($participant);
}