Bonjour,
Je viens vers vous car un problème me laisse perplexe.
J'utilise FOSUserBundle, tous se qui concerne l'installation puis la modification + l'ajout de fonction marche.
Mais lorsque je veux éditer un utilisateur côter admin dont le champs Password requested at et expiredAt sont à null , le formulaire me remplie ces champs avec une date alors qu'il sont null. :(
Voici ci-dessous mon fichier UserType.php générer avec la commande generate:form :
<?php
namespace Portfolio\UserBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
use Portfolio\UserBundle\Entity\User;
use Symfony\Component\Form\FormInterface;
class UserType extends AbstractType
{
/**
* @param FormBuilderInterface $builder
* @param array $options
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('last_name' , 'text')
->add('first_name' , 'text')
->add('username' , 'text')
->add('usernameCanonical', 'text')
->add('email' , 'text')
->add('emailCanonical' , 'text')
->add('enabled' , 'checkbox', array(
'label' => 'enabled',
'required' => false,
))
->add('salt' , 'text')
->add('password' , 'text')
->add('lastLogin' , 'datetime')
->add('locked' , 'checkbox')
->add('expired' , 'checkbox')
->add('expiresAt' , 'datetime')
->add('confirmationToken' , 'text')
->add('passwordRequestedAt', 'datetime')
->add('roles',
'bootstrap_collection',
array(
'allow_add' => true,
'allow_delete' => true,
'add_button_text' => 'ajouter un roles',
'delete_button_text' => '<i class="fa fa-trash-o"></i>',
'sub_widget_col' => 9,
'button_col' => 3
)
)
->add('credentialsExpired' ,'checkbox')
->add('credentialsExpireAt','datetime')
->add('lastActivity' ,'datetime')
->add('groups',
'bootstrap_collection',
array(
'allow_add' => true,
'allow_delete' => true,
'add_button_text' => 'ajouter un group',
'delete_button_text' => '<i class="fa fa-trash-o"></i>',
'sub_widget_col' => 9,
'button_col' => 3
)
)
;
}
/**
* @param OptionsResolverInterface $resolver
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Portfolio\UserBundle\Entity\User',
'empty_data' => function (FormInterface $form) {
return new User($form->get('title')->getData());
},
));
}
/**
* @return string
*/
public function getName()
{
return 'portfolio_userbundle_user';
}
}
Avec un var_dump j'ai bien vérifier et mais champs date sont bien à null.
Quelqu'un aurais eu se problème ou peut il m'expliquer si cela viens de symfony qui les remplie par default?
Merci d'avance pour votre aide.
Il suffit d'ajouter l'option 'empty_value' => '' dans ton array d'options:
$builder->add('expiresAt', 'datetime', array(
'empty_value' => '',
));
Salut,
Désoler du temps de réponse :(, j'étais tellement dans mes recherches que je suis pas revenu sur le forum :(.
Sa marche nikel :)
Je te remercie pour ton aide et encore désoler.