Comment définir une valeur par défaut dans Symfony2 de sorte que le système CRUD les formulaires générés ne nécessitent pas de ces champs?
Comme je l'ai déjà découvert, Doctrine2 "ne prend pas en charge de définir les valeurs par défaut des colonnes à travers le “par DÉFAUT” mot-clé dans SQL. ... vous pouvez utiliser vos propriétés de la classe en tant que valeurs par défaut".
class Product
{
//...
/**
* @var string $name
*
* @ORM\Column(name="name", type="string", length=255)
*/
private $name = "";
/**
* @var string $sale
*
* @ORM\Column(name="sale", type="boolean")
*/
private $sale = false;
Mais même quand je fais cela, à la génération du CRUD formes encore m'obliger à remplir les formulaires. Dans le cas d'attributs booléens ce même moyen, je ne peux que défini à true (c'est à dire 1
).
Je fais quelque chose de mal?
(Je sais que je peux activer la validation en dehors, mais j'aimerais une solution pour le problème au lieu de simplement les ignorer)
OriginalL'auteur Czechnology | 2011-09-13
Vous devez vous connecter pour publier un commentaire.
Votre valeur booléenne besoin d'avoir nullable définie comme vrai:
OriginalL'auteur Julien Ducro
En programmation orientée Objet, vous devez utiliser le constructeur de l'entité pour définir une valeur par défaut pour un attribut:
OriginalL'auteur Freenando
Je n'ai pas utilisé le CRUD de génération automatique de l'outil, mais je sais que par défaut, chaque champ est requis. Vous devez explicitement passer
'required' => false
comme une option pour vos champs.Cela peut être fait en la forme des classes
La même chose peut être réalisée dans une classe de Formulaire généré à l'intérieur de votre contrôleur
Cette ligne: "$builder->add('champ', 'text', array('required' => false));" résolu mon problème!
OriginalL'auteur gilden
Vous pouvez également utiliser les " données de paramètre, comme dans :
Ici, j'ai défini une classe pour faire une jQuery UI datepicker du champ à l'aide de JavaScript.
J'ai aussi mis le widget à la une comme single_text donc je ne vais pas obtenir trois sélectionner les champs.
Et puis j'ai mis les données par défaut à l'actuel DateTime()
OriginalL'auteur Yassir Ennazk
Ou Dans les annotations
Utilisation:
et non pas:
Par exemple:
OriginalL'auteur Louwki