2017-10-16 113 views
0

我以前從未遇到過這個問題,但我嘗試在FOSUserBundle的註冊表單中添加一個字段。結果我只有deafult形式從捆綁並沒有得到我的「birthday_date」字段。我究竟做錯了什麼 ?我不能將字段添加到我的註冊表格中

我RegistrationType文件

<?php 

namespace AppBundle\Form; 

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


class RegistrationType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->add('birthday_date'); 
} 
public function getParent() 
{ 
    return 'fos_user_registration'; 
} 
public function getName() 
{ 
    return 'app_user_registration'; 
} 
} 

我config.yml文件

fos_user: 
    db_driver: orm # other valid values are 'mongodb' and 'couchdb' 
    firewall_name: main 
    user_class: AppBundle\Entity\User 
    registration: 
     form: 
      name: app_user_registration 

而且我servie.yml文件

app.form.registration: 
    class: AppBundle\Form\RegistrationType 
    tags: 
     - { name: form.type, alias: app_user_registration } 

我只是按照文件指示,所以我不知道,問題在哪裏

+0

在你的配置,如果你在註冊時把'name'改成'type':form:那你能在哪裏找到? –

回答

0

getParent()函數應該返回類的父形式而不是名字,這些變化自帶版本> 2.8,檢查Overriding a Form Type

所以你的表單類型的類應該成爲:

<?php 

namespace AppBundle\Form; 

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


class RegistrationType extends AbstractType 
{ 
    public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->add('birthday_date'); 
} 
public function getParent() 
{ 
    return 'FOS\UserBundle\Form\Type\RegistrationFormType'; 
} 
public function getName() 
{ 
    return 'app_user_registration'; 
} 
} 
+0

這就是我必須要做的。但是文檔中還提到了config.yml中的更改。我們必須將'name:app_user_registration'改爲'type:AppBundle \ Form \ RegistrationType' – Eddy

相關問題