2014-02-25 5 views
6

ich meine benutzerdefinierte Form haben, die eine Kombination von verschiedenen Einheiten in ist, was mit dem folgenden Code Sinn für den Endbenutzer macht:Symfony2: Formularausnahme - Die Optionen "class", "query_builder" existieren nicht. Bekannte Optionen sind:

$form = $this->container->get('form.factory')->createNamedBuilder(null, 'form') 
    ->add('country', 'entity', array(
      'class'   => 'ACME\MyBundle\Entity\Country', 
      'query_builder' => function(EntityRepository $er) { 
       return $er->createQueryBuilder('c')->orderBy('c.en_name', 'ASC'); 
      }, 
      'label'   => '* Country', 
      'required'  => true 
     ), 
    ) 

Der Code scheint auch in Ordnung, wenn die Dokumentation http://symfony.com/doc/current/reference/forms/types/entity.html#reference-forms-entity-choices Beratung, aber ich halten Sie die Störung zu erhalten unter:

The options "class", "query_builder" do not exist. Known options are: "action", 
"attr", "auto_initialize", "block_name", "by_reference", "cascade_validation", 
"choice_list", "choices", "compound", "constraints", "csrf_field_name", 
"csrf_message", "csrf_protection", "csrf_provider", "csrf_token_id", 
"csrf_token_manager", "data", "data_class", "disabled", "empty_data", "empty_value", 
"error_bubbling", "error_mapping", "expanded", "extra_fields_message", "inherit_data", 
"intention", "invalid_message", "invalid_message_parameters", "js_validation", 
"label", "label_attr", "label_render", "mapped", "max_length", "method", 
"multiple", "pattern", "post_max_size_message", "preferred_choices", 
"property_path", "read_only", "required", "sonata_admin", "sonata_field_description", 
"translation_domain", "trim", "validation_groups", "virtual" 

ich weiß nicht, was ich vermisst und würden uns über Ihre Hilfe

+0

Haben Sie "verwenden Lehre \ ORM \ EntityRepository;" am Anfang der Datei? – repincln

+0

Ja, ich habe es –

+0

vielleicht ist die TypForm 'Form' nicht gültig – darkomen

Antwort

2

ich in dieser Ausgabe vor kurzem lief 3. Der Feldtyp mit Symfony muss b e EntityType, um Klassen- und query_builder-Optionen zu verwenden. Aus unbekannten Gründen sah Symfony meine als ChoiceType, also löste ich mein Problem, indem ich den Feldtyp deklarierte. Versuchen Sie folgendes:

Fügen Sie den folgenden Gebrauch unter dem Namespace:

use Symfony\Bridge\Doctrine\Form\Type\EntityType; 

und fügen Sie das Feld wie folgt aus:

->add('country', EntityType::class, array(
     'class'   => 'ACME\MyBundle\Entity\Country', 
     'query_builder' => function(EntityRepository $er) { 
      return $er->createQueryBuilder('c')->orderBy('c.en_name', 'ASC'); 
     }, 
     'label'   => '* Country', 
     'required'  => true 
    ), 
) 
Verwandte Themen