Symfony2:选项"小部件"不存在

Dav*_*vid 4 php symfony

我正在尝试使用symfony2构建一个表单,但每当我添加widget选项以指定表单字段类型时,我一直收到错误消息"选项"小部件"不存在".

我正在关注http://symfony.com/doc/current/book/forms.html上的文档中给出的示例

这是我的代码不起作用.

class UserType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
    $builder
        ->add('Name')
        ->add('Login')
        ->add('Password')//, 'text', array('widget' => 'password'))
        ->add('ConfirmPassword')//, 'text', array('widget' => 'password', 'label' =>'Confirm Password'))
        ->add('Email', 'text', array('widget' => 'email'))
        ->add('ConfirmEmail')//,'text', array('widget' => 'email', 'label' =>'Confirm Email'))    
   //...
}
Run Code Online (Sandbox Code Playgroud)

谁知道为什么?谢谢

Mol*_*Man 7

我相信,做你想要达到的目标的正确方法如下:

->add('Name', 'text')
->add('Login', 'text')
->add('Password', 'password')
->add('ConfirmPassword', 'password', array('label' =>'Confirm Password'))
->add('Email', 'email')
->add('ConfirmEmail', 'email')
Run Code Online (Sandbox Code Playgroud)

add方法的第一个参数是field name(它必须在表单中是唯一的).第二个是type它负责渲染时窗口小部件采用的形式.内置类型的列表在这里.第三个参数是选项数组.每个人type都有自己的可能options.实际上,有些类型可以widget选择.例如,date类型有这样的选项.但是password,email类型没有这种选择.