Bonjour,

Ce que je fais

Alors déjà j'ai rajouter un champs dans ma base de donnée avec les migrations en faisans un :

$table->date('dob');

Ensuite dans mon register.blade.php je rajoute le champs select avec 3 attribut name "dobday", "dobmonth", "dobyear"

http://hastebin.com/ekereyegon.vbs

Mais alors après niveau validation je ne sais pas trop comment gérer ça et comment le gérer dans la bdd également.

Ce que je veux

J'aimerais stocker la date de naissance d'un utilisateur a l'inscription via un champs de type select dans la base de donnée.

Si pourriez m'orientez ça serais cool merci ;-)

7 réponses


krysenn
Réponse acceptée

Théoriquement si tu es sur Laravel, dans ton contrôleur tu fais un de($request->all()); afin de voir le nom des différents champs et ensuite tu récupère la valeur avec $request->Input('cle');
N'oublie pas de déclarer Request $request dans ton contrôleur et de déclarer l'utilisation de Request (use Request;)

Il faut que tu cherches un peu aussi tout est dans la doc Laravel ;)

Akio
Auteur
Réponse acceptée

De retour ! J'ai enfin réussie ! lol ! J'ai bien galérer depuis 2 jours !

Ce que j'ai fait pour ceux qui ça intéresserais !

Création de 3 select dans la vue pour choisir la date de naissance.

Pour les 3 select je leurs donne un name => 1er : day 2eme : month 3eme: year

Ensuite dans le RegisterController j'ai ajouté ça quand il créer l'utilisateur :

'dob'     => Carbon::createFromDate($data['year'], $data['month'], $data['day'])

Et voila ça se fait tout seule !

Salut Akio,

Je pense que le plus simple c'est de faire un champ texte avec une couche de javascript pour avoir un menu déroulant permettant de sélectionner une date.

Exemple:
Les ressources pour faire fonctionner le calendrier:
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>

Formulaire dans une vue:
{!! Form::text('dob', null, array('placeholder' => 'Date de naissance')) !!}

script permettant de faire fonctionner le calendrier sur ton champ:
<script>
$( function() {
$( "#datepicker" ).datepicker();
} );
</script>

Après c'est pas forcément la seule méthode il y en a plein d'autres mais en voilà une ;)

Voici le lien plus explicatif du module jquery permettant d'afficher un calendrier:
https://jqueryui.com/datepicker/

Akio
Auteur

Salut ! Merci pour ta réponse.

J'ai fait comme tu as dit en attendant. Si jamais quelqu'un trouve comment on peut faire avec des select je suis preneur étant donner que je trouve tout de même les select plus "sexy" et moins prise de tête pour les utilisateurs.

Dans tout les cas, merci pour ta réponse, je metterais en résolue un peu plus tard voir si des personnes répondrons pour les select, si pas de réponses je metterais en résolue ta réponse.

Merci encore :)

Du coup je pense que ceci est plus dans ce que tu recherches:
{{ Form::selectRange('date_of_birth[day]', 1, 31, null) }}
{{ Form::selectMonth('date_of_birth[month]', null) }}
{{ Form::selectYear('date_of_birth[year]', date('Y') - 3, date('Y') - 16, null) }}

    Source: https://gist.github.com/jokamjohn/41a0fa8a3d6d3f48ec7f
Akio
Auteur

Merci encore pour ta réponse.

Encore une petite question du coup, comment je gère l'insertion des données dans ma base de donnée ?

Parce que actuellement dans mon controller Register j'ai fait comme ça :

'dob'    => $data['dob']

Je dois rajouter 3 règles comme celle la pour [day],[month],[year] ?