2017-10-11 3 views
0

J'ai un problème pour étendre le formulaire. Je veux juste changer le format d'anniversaire dans le style de l'UE (jj.MM.aaaa). Donc, je crée le répertoire src/AppBundle/Form/Extension/CustomerProfileTypeExtension.phpSylius v1.0.0 simple extension de formulaire

<?php 

namespace AppBundle\Form\Extension; 

use Sylius\Bundle\CustomerBundle\Form\Type\CustomerProfileType; 
use Symfony\Component\Form\AbstractTypeExtension; 
use Symfony\Component\Form\Extension\Core\Type\TextType; 
use Symfony\Component\Form\FormBuilderInterface; 

final class CustomerProfileTypeExtension extends AbstractTypeExtension 
{ 
/** 
* {@inheritdoc} 
*/ 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 

// Change to EU Style dd.MM.yyyy 
$builder->add('birthday', BirthdayType::class, [ 
'format' => 'dd.MM.yyyy', 
]); 
} 

/** 
* {@inheritdoc} 
*/ 
public function getExtendedType() 
{ 
return CustomerProfileType::class; 
} 
} 

et j'ai changé le AppBundle/Ressources/config/services.yml à

services: 
app.form.extension.type.customer_profile: 
class: AppBundle\Form\Extension\CustomerProfileTypeExtension 
tags: 
- { name: form.type_extension, extended_type: Sylius\Bundle\CustomerBundle\Form\Type\CustomerProfileType } 

MAIS PAS DE CHANGEMENT. Cache clair ne m'aide pas! J'ai aussi juste changé comme dans l'exemple de sylius pour enlever le champ de genre ou changer le requis en vrai - ça ne marche pas.

Une idée/une aide?

Mike

Répondre

0

Solution: J'ai oublié d'importer le services.yml'- {ressource: "services.yml"} dans mon config.yml

0

Je viens de tester cela et il a jeté une erreur que vous manquez la ligne suivante

use Symfony\Component\Form\Extension\Core\Type\BirthdayType;

en fait, enlever

use Symfony\Component\Form\Extension\Core\Type\TextType;

que ce n'est pas étant utilisé, et le remplacer par la ligne BirthdayType

Une fois que j'ai ajouté cela, cela a bien fonctionné.

John

+0

Salut John, je ne sais pas pourquoi ... sa ne fonctionne pas pour moi. J'essaye de faire ceci aussi pour que le formulaire s'inscrive. Sans succès. Pour être sûr ... tout ce que j'écrivais est correct? Je veux dire le chemin et il n'y a rien d'autre? Pas de changement dans la config? Donc tarif c'est aussi 1by1 dans mes services.yml. Ou y a-t-il quelque chose qui manque? THX Mike –

+0

Ah, j'ai remarqué une différence entre ce que tu as fait et ce que j'ai fait la nuit dernière. Mettez la définition des services dans app/config/services.yml et essayez-la. – johnrisby

0

O.K. - pour la rendre correcte:

Acme/src/AppBundle/Forme/extension/CustomerProfileTypeExtension.php

<?php 

namespace AppBundle\Form\Extension; 

use Sylius\Bundle\CustomerBundle\Form\Type\CustomerProfileType; 
use Symfony\Component\Form\AbstractTypeExtension; 
use Symfony\Component\Form\Extension\Core\Type\BirthdayType; 
use Symfony\Component\Form\FormBuilderInterface; 

final class CustomerProfileTypeExtension extends AbstractTypeExtension 
{ 
/** 
* {@inheritdoc} 
*/ 
public function buildForm(FormBuilderInterface $builder, array $options) 
{ 

// Change to EU Style dd.MM.yyyy 
$builder->add('birthday', BirthdayType::class, [ 
'format' => 'dd.MM.yyyy', 
'required' => true, 
]); 
} 

/** 
* {@inheritdoc} 
*/ 
public function getExtendedType() 
{ 
return CustomerProfileType::class; 
} 
} 

Acme/src/AppBundle/Ressources/config/services.yml

services: 
app.form.extension.type.customer_profile: 
class: AppBundle\Form\Extension\CustomerProfileTypeExtension 
tags: 
- { name: form.type_extension, extended_type: Sylius\Bundle\CustomerBundle\Form\Type\CustomerProfileType } 

Même -aucun changement - si je change ici. acme/app/config/services.yml

Aucun changement de champ. Pas d'erreur - aussi non quand j'efface le cache.

+0

J'ai le même problème, avez-vous trouvé une solution? – Sirius

+0

Oui, j'ai oublié d'importer le service.yml '- ​​{resource:" services.yml "}' dans mon config.yml –