Bonjour la communauté,
je n'arrive pas à utiliser le datepicker de materialize avec Symfony et twig.
La datepicker fonctionne correctement comme ça (comme sur la doc) :

<input type="date" class="datepicker">

mais je n'arrive pas à l'utiliser avec :

<div class="input-field col l6">
    {{ form_label(form.forUserEndDate, 'End Date') }}
    {{ form_widget(form.forUserEndDate) }}
</div>

J'ai essayé de plusieurs façons, mais rien n'y fait pour l'instant, c'est pour ça que je viens vous demander un peu d'aide.

Merci.

8 réponses


loki
Auteur
Réponse acceptée

Salut,
@nicovak
oui il est bien fonctionnel.

@Underscreen
je pense que tu es dans le vrai et que le datapicker ne fonctionne qu'avec un champ texte et pas un champ date ce qui réduit quand même son utilisation.
c'est pas grave je vais laisser les menus déroulants,
merci pour votre aide.

Le champ généré est - il de type "date" ? Le champ a t - il la classe "datepicker". Il faut regarder ce que {{ form_widget(form.forUserEndDate) }} génère.

Le meilleure façon de faire:
Créer un FormType en faisant par exemple un extend de celui des dates. De cette façon tu pourra overrider le template twig du champ de formulaire.

Tu pourras en + utiliser ce champ dans tous tes formulaires simplement. Sinon ajouter la classe devrait suffir exemple:

$builder->add('forUserEndDate', 'date', array(
    /* ... */
    "attr" => array(
       "class" => "datepicker",
   ),
  ));

DOCUMENTATION

loki
Auteur

Salut Nicovak, merci de t'être penché sur mon cas ;)
Alors le champ est bien de type 'date' et je lui ai bien mis la classe 'datepicker' ou dans le builder ou dans twig avec:

{{ form_label(form.forUserStartDate, 'Start Date') }}
{{ form_widget(form.forUserStartDate, {'attr': {'class': 'datepicker'}}) }}

mais dans les deux cas ça ne fonctionne pas.

Juste pour être sûr, tu as bien initialisé le plugin javascript ? La console ne renvoit elle aucune erreur ?

Bonjour et pour info datepicker il faut un champ de type text si on regarde dans le code source c'est bien un input de type text. Une erreur peut être de la doc ?
http://materializecss.com/forms.html

@loki Pourquoi ça réduit son utilisation ? si tu précise dans ton formulaire que le champ est un de type text alors ton datepicker est fonctionnel ( perso c'est comme ça que je gère mes date ) il n'empeche pas que le format envoyé à ta base est datetime du coup avec twig tu peux gérer le format date comme tu le souhaite !

Je ne vois pas la limite dont tu parles aussi peux tu ( situ as le temps ) être plus clair la dessus ?

loki
Auteur

salut Underscreen, c'est moi qui n'ai pas dû comprendre un truc.
J'ai bien essayé de mettre le champ en text que ce soit dans twig ou dans le builder, mais à la validation j'obtiens un (bad format).

pour la limite ça venait du champ text en date, mais si tu y arrive c'est que ça vient de moi ;)

le bad format est sois lié au datepicker qui attend un format et tu lui en donne un autre, soit le datepicker te renvoi un format et symsony en attend un autre.
Je pense que tu doit t'orienter du coté du datepicker pour voir de quoi il peut s'agir.
Bon courage dans ta recherche !