b.imen
b.imen

Reputation: 127

Laravel6 - Multiple form inputs with the same name

I am new to Laravel and I am trying to save multiple passengers

my inputs :

<input type="text" name="passenger[firstname][]">
<input type="text" name="passenger[lastname][]">
<input type="text" name="passenger[birthdate][]">
<input type="text" name="passenger[gender][]">

after dumping the request I get this :

array:5 [▼
  "firstname" => array:2 [▼
    0 => "test"
    1 => "test1"
  ]
  "lastname" => array:2 [▼
    0 => "test"
    1 => "test1"
  ]
  "birthdate" => array:2 [▼
    0 => "1994-25-11"
    1 => "1994-24-11"
  ]
  "gender" => array:2 [▼
    0 => "male"
    1 => "female"
  ]
]

but the result I need is somthing like this :

passengers = [
[
  "firstname" => "test",
  "lastname" => "test",
  "birthdate" => "1994-25-11",
  "gender" => "male"
],
[
  "firstname" => "test2",
  "lastname" => "test2",
  "birthdate" => "1994-24-11",
  "gender" => "female"
]
]

What is the best way to do?

Upvotes: 0

Views: 123

Answers (1)

Felippe Duarte
Felippe Duarte

Reputation: 15131

Create your form with an array of passengers:

<input type="text" name="passenger[0][firstname]">
<input type="text" name="passenger[0][lastname]">
<input type="text" name="passenger[0][birthdate]">
<input type="text" name="passenger[0][gender]">

<input type="text" name="passenger[1][firstname]">
<input type="text" name="passenger[1][lastname]">
<input type="text" name="passenger[1][birthdate]">
<input type="text" name="passenger[1][gender]">

You may need some javascript to manage the passenger number

Upvotes: 2

Related Questions