formulaire avec prise de donnée dans BDD
Est-ce que la clé primaire est bien auto-incrémentée ?
Ouii elle est bien auto-incrémentée, que dois-je faire s'il vous plait?
Bonjour,
Avec les renseignements fournis je ne vois pas ce qui peut générer cette erreur.
Bonjour, C'est bon, je l'ai réglé ça ne me génère plus cette erreur, le problème maintenant c'est que mon code ne m'enregistre que la dernière valeur remplie par l'utilisateur, voici mon code : public function addPlanif(Request $request){ $this->validate($request,[ 'num=>'required' ]); $autocar = new Autocar; $planification = new Planification; $num = $request->input('num'); $id_auto = $autocar->select('id')->where('num',$num)->value('id'); $data = array( 'id_autocar'=>$request->input('num'), ); $planification->insert($data); } return "validated successfully"; }
S'il te plait, que dois je rajouter pour qu'il m'enregistre tous les numéros envoyés par le formulaire? Merci pour ton aide @bestmomo
Salut,
Difficile à dire sans voir à quoi ressemble le formulaire...
Bonjour, Voici une partie de mon formulaire : @foreach($lignes -> all() as $ligne)
}
echo Form::select('num',$tableau,['class'=>'form-control']);
$tableau = array();
?></td>
@endforeach
Toutes les listes on le même nom 'num' dans le formulaire, il est donc logique qu'un seul soit pris en compte. Il faut soit prévoir des noms différentes, soit un tableau.
Non voici les autres :
<td scope="row"><input type="number" id="id_ligne" name="id_ligne" value="{{$ligne -> id}}"></td>
<td scope="row"><input type="text" id="intitulé" name="intitulé" value="Interurbain"></td>
<td scope="row">{{$ligne -> départ}} - {{$ligne -> arrivée}}</td>
<td scope="row">{{$ligne -> heure_départ}}</td>
<td scope="row">
<?php
foreach ($chauffeurs as $chauffeur) {
$tableauSoc[$chauffeur->id]=$chauffeur->nom." ".$chauffeur->prenom;
}
echo Form::select('nom',$tableauSoc,['class'=>'form-control']);
$tableauSoc =array();
?></td>
<td scope="row">
<?php
foreach ($chauffeurs as $chauffeur) {
$tableauSoc[$chauffeur->id]=$chauffeur->nom." ".$chauffeur->prenom;
}
echo Form::select('nom',$tableauSoc,['class'=>'form-control']);
$tableauSoc =array();
?>
</td>
<td scope="row">
<?php
foreach ($autocars as $autocar) {
$tableau[$autocar->id]=$autocar->num_societé;
}
echo Form::select('num_societé',$tableau,['class'=>'form-control']);
$tableau = array();
?></td>
Tu peux me faire un exemple avec les tableaux s'il te plait?
Il suffit de prévoir les crochets avec le nom du champ :
Form::select('num[]',$tableau,['class'=>'form-control']);
A l'arrivée tu boucles sur la variable.
Salut, j'ai fait ça et au niveau du controller , j'ai mis ça :
$num[] = $request->input('num_societé'); foreach ($num as $key => $value) { $id_auto = $auto->select('id')->where('num',$num)->value('id'); $planifs->id_autocar = $value; } $planifs->save();
Mais j'ai eu cette erreur :
Array to string conversion (SQL: insert into `planifications` (`intitulé_affectation`, `id_ligne`, `id_chauff`, `id_chauff_ac`, `id_autocar`, `updated_at`, `created_at`) values (Interurbain, 2, 1, 1, 2, 2018-06-04 22:52:39, 2018-06-04 22:52:39))
Merci pour ton aide @bestmomo
Je n'ai pas tout analysé mais ça serait pas plutôt ça ?
$id_auto = $auto->select('id')->where('num',$key)->value('id');
Je l'ai fait comme ça mais toujours la meme erreur :/
Tu as quoi dans $num ?
$num[] = $request->input('num_societé');
dd($num);
A priori les id des choix. Donc ta boucle devrait être juste :
foreach ($num as $value) {
...
Voici le résultat de dd($num); array:2 [▼ 0 => "2" 1 => "1" ] D'ailleurs, dans mon formulaire y'a d'autres champs alors j'ai appliqué ton astuce d'utilisation des tableaux et c'est bien parce que maintenant dans le tableau j'arrive à voir les autres valeurs séléctionnées par l'utilisateur, mais le problème toujours est comment je vais les stocker en bdd, c'est triste parce que ça fait un bon moment que je suis bloquée dessus :(
C'est toujours difficile de répondre en ayant une vue fractionnaire et sans pouvoir faire de test, mais dans l'idée :
$num[] = $request->input('num_societé');
foreach ($num as $value) {
$planification = new Planification;
$planification->id_autocar = $auto->where('num', $value)->value('id');
$planification->save();
}
Bonjour, Merci @bestmomo pour ton aide mais ce code n'enregiste que les valeurs de la variable $num, mais moi je veux enregistrer le tout à la fois ; J'ai essayé ça mais malheureusement je n'ai pas eu le résultat que je veux :
""" $id_ligne = $request->get('id_ligne'); $intitulé = $request->get('intitulé'); $id_chauff = $request->get('val'); $id_chauff_ac = $request->get('nom'); $id_autocar = $request->get('num_societé'); foreach($id_ligne as $value1){ $planifs = new Planification; $planifs->id_ligne = $value1; foreach ($intitulé as $value2) { $planifs->intitulé_affectation = $value2; } foreach ($id_chauff as $value3) { $planifs->id_chauff = $value3; } foreach ($id_chauff_ac as $value4) { $planifs->id_chauff_ac = $value4; } foreach ($id_autocar as $value5) { $planifs->id_autocar = $value5; } $planifs->save(); } """
Vous ne pouvez pas répondre à ce sujet.