Laravel - Store multiple checkbox form values in database
25,067
If you have multiple checkboxes like this:
<input type="checkbox" name="services" value="1"/>
<input type="checkbox" name="services" value="2"/>
<input type="checkbox" name="services" value="3"/>
It will send's only one value to server, cause name must be unique. Workaround is to use array inputs:
<input type="checkbox" name="services[]" value="1"/>
<input type="checkbox" name="services[]" value="2"/>
<input type="checkbox" name="services[]" value="3"/>
Then you can grab that input in controller and do something like this:
$services = $request->input('services');
foreach($services as $service){
orders::create($service);
}
Validation of arrays in Laravel:
https://laravel.com/docs/5.7/validation#validating-arrays
More about input arrays:
How to get form input array into PHP array
Author by
Admin
Updated on March 03, 2020Comments
-
Admin about 4 years
So I've got this code
View:
<div id="checkboxes"> <input type="checkbox" class="checkbox" name="services" value="{{ $service->id }}" id="{{ $service->id }}" /> <label class="whatever" for="{{ $service->id }}"><p class="serv-text"> {{ $service->service_name }} + ${{ $service->price }} </p></label> </div>
Controller:
public function store(Request $request) { orders::create(Request::all()); return 'test'; }
Model:
class orders extends Model { protected $fillable = [ 'category', 'services', 'total_price', 'user_id', 'status', 'user_id']; }
When I try to submit the form, in the database at services there is only one number even if I checked multiple boxes when I submitted the form. I've tried to find on google a solution but nothing.