2013-08-01 13 views
6

Próbuję osadzić zbiór form tak jak pokazany tutaj - http://symfony.com/doc/current/cookbook/form/form_collections.htmlBłąd podczas próby użycia formularzy osadzonych w Symfony2

prawie Przepisz kod stamtąd ale spotkałem dwa problemy:

  1. FatalErrorException: Compile Error: Declaration of MyBundle\Form\Type\ExpenseType::setDefaultOptions() must be compatible with that of Symfony\Component\Form\FormTypeInterface::setDefaultOptions() in MyBundle\Form\Type\ExpenseType.php line 33

  2. Funkcja form_start() nie istnieje.

Czy masz pomysły na rozwiązanie pierwszego problemu? Nic nie pomaga :(

PS Nie dodaję żadnego kodu, ponieważ jest taki sam jak w książce, zmieniłem tylko nazwy (lub przynajmniej tak myślę), dodam dowolny kod, jeśli to konieczne.

ExpenseType.php

<?php 

namespace MyBundle\Form\Type; 

use Symfony\Component\Form\AbstractType; 
use Symfony\Component\Form\FormBuilderInterface; 

class ExpenseType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     $builder->add('name', 'text',array(
      'label' => ' ')); 

     $builder->add('description', 'textarea',array(
      'label' => ' ')); 

     $builder->add('expenseVariants', 'collection', array('type' => new ExpenseVairantType())); 

    } 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(array(
      'data_class' => 'MyBundle\Entity\Expense', 
     )); 
    } 

    public function getName() 
    { 
     return 'expense'; 
    } 
} 
+0

Będziesz musiał przynajmniej pokazać nam ExpenseType.php –

+0

Uaktualniłem pytanie :) – Faery

Odpowiedz

18

brakuje

use Symfony\Component\OptionsResolver\OptionsResolverInterface; 

od importu.

+0

oooh bardzo dziękuję! Nigdy tego nie zauważyłem. – Faery

Powiązane problemy