Php Symfony2 FOSUserBundle-附加表格
我想增加一个额外的步骤来注册。我有自己的FormType“Firma”,它试图在registerController中加入我的附加方法。在控制器中调用此操作时出错:Php Symfony2 FOSUserBundle-附加表格,php,symfony,fosuserbundle,Php,Symfony,Fosuserbundle,我想增加一个额外的步骤来注册。我有自己的FormType“Firma”,它试图在registerController中加入我的附加方法。在控制器中调用此操作时出错: Fatal error: Call to undefined method My\FrontendBundle\Form\Type\FirmaType::createView() in /var/www/Budowlanka/src/My/FrontendBundle/Controller/RegistrationControlle
Fatal error: Call to undefined method My\FrontendBundle\Form\Type\FirmaType::createView() in /var/www/Budowlanka/src/My/FrontendBundle/Controller/RegistrationController.php on line 107
RegisterController中的下一步操作
service.xml:
编辑:
它工作得很好,但现在我有一个问题,从许多关系领域的标签
->add('specjalizacja', 'entity', array(
'label' => 'Specjalizacje',
'multiple' => true,
'expanded' => true,
'property' => 'nazwa',
'class' => 'My\FrontendBundle\Entity\Specjalizacja',
'query_builder' => function(\Doctrine\ORM\EntityRepository $er) {
$qb = $er->createQueryBuilder('g');
return $qb->orderBy('g.nazwa', 'DESC');
}
)
它显示“my_user_firma_form_specjalizacja_110”标签(110是记录的id),而不是实体的Nazwa字段。我在Specjalizacja实体类中有一个_toString()方法您应该使用formFactory来创建表单
<service id="my_user.firma.form" factory-method="createNamed" factory-service="form.factory" class="Symfony\Component\Form\Form">
<argument>my_user_firma</argument>
<argument>'my_user_firma_form'</argument>
</service>
<service id="my_user.firma.form.type" class="My\FrontendBundle\Form\Type\FirmaType">
<tag name="form.type" alias="my_user_firma" />
<argument>My\FrontendBundle\Entity\Firma</argument>
</service>
从这里您应该可以使用
$form->createView()
第107行的代码是什么?
namespace My\FrontendBundle\Form\Type;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilder;
class FirmaType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
$builder
->add('nazwa')
->add('ulica')
->add('nr_budynku')
->add('nr_lokalu')
->add('miasto')
->add('kod_pocztowy')
->add('poczta')
->add('telefon_1')
->add('telefon_2')
->add('email')
->add('www')
->add('liczba_opinii')
->add('nip')
->add('imie')
->add('nazwisko')
->add('haslo')
->add('logo')
->add('opis_uslug')
->add('data_dodania')
->add('data_modyfikacji')
->add('slug')
->add('specjalizacje')
;
}
public function getName()
{
return 'my_frontendbundle_firmatype';
}
}
->add('specjalizacja', 'entity', array(
'label' => 'Specjalizacje',
'multiple' => true,
'expanded' => true,
'property' => 'nazwa',
'class' => 'My\FrontendBundle\Entity\Specjalizacja',
'query_builder' => function(\Doctrine\ORM\EntityRepository $er) {
$qb = $er->createQueryBuilder('g');
return $qb->orderBy('g.nazwa', 'DESC');
}
)
<service id="my_user.firma.form" factory-method="createNamed" factory-service="form.factory" class="Symfony\Component\Form\Form">
<argument>my_user_firma</argument>
<argument>'my_user_firma_form'</argument>
</service>
<service id="my_user.firma.form.type" class="My\FrontendBundle\Form\Type\FirmaType">
<tag name="form.type" alias="my_user_firma" />
<argument>My\FrontendBundle\Entity\Firma</argument>
</service>
$form = $this->container->get('my_user.firma.form');