J'ai donc ce code
Voir:
<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>
Contrôleur:
public function store(Request $request)
{
orders::create(Request::all());
return 'test';
}
Modèle:
class orders extends Model
{
protected $fillable = [
'category',
'services',
'total_price',
'user_id',
'status',
'user_id'];
}
Lorsque j'essaie de soumettre le formulaire, dans la base de données des services, il n'y a qu'un seul numéro même si j'ai coché plusieurs cases lorsque j'ai soumis le formulaire. J'ai essayé de trouver sur google une solution mais rien.
Si vous avez plusieurs cases à cocher comme celle-ci:
<input type="checkbox" name="services" value="1"/>
<input type="checkbox" name="services" value="2"/>
<input type="checkbox" name="services" value="3"/>
Il n'enverra qu'une seule valeur au serveur, car le nom doit être unique. La solution consiste à utiliser les entrées du tableau:
<input type="checkbox" name="services[]" value="1"/>
<input type="checkbox" name="services[]" value="2"/>
<input type="checkbox" name="services[]" value="3"/>
Ensuite, vous pouvez saisir cette entrée dans le contrôleur et faire quelque chose comme ceci:
$services = $request->input('services');
foreach($services as $service){
orders::create($service);
}
Validation des tableaux dans Laravel:
https://laravel.com/docs/5.7/validation#validating-arrays
En savoir plus sur les tableaux d'entrée:
Comment obtenir un tableau d'entrée de formulaire dans PHP array