在Symfony2上给出的类型为“Boolean”,“string”的预期参数

时间:2011-12-19 16:43:20

标签: forms symfony doctrine-orm boolean

我目前正在尝试创建一个表单,其中的字段默认填充了数据库中的数据。

我用:

$infos = $this->getDoctrine()
              ->getRepository('TestMyBundle:My')
              ->find($id);
$form = $this->createForm(new TestType(), $infos);`

但是我总是得到这个错误信息:类型"布尔","字符串"的预期参数;在Symfony2上给出。第二个参数$ infos可能是此消息的原因,但它是使用Symfony2在表单字段中添加一些默认值的方法。

有人可以帮我吗?

以下是我的TestType.php类的代码:

class   TestType extends AbstractType
{
public function buildForm(FormBuilder $builder, array $options)
{
    $builder->add('name');

    $builder->add('description');

    $builder->add('access', 'checkbox', array(
    'label' => 'private access: ',
    'required'  => false,));

    $builder->add('visibility', 'checkbox', array(
    'label' => 'private group: ',
    'required'  => false,));

    $builder->add('invitation', 'checkbox', array(
    'label' => 'ask: ',
    'required'  => false));

    $builder->add('wall', 'checkbox', array(
    'label' => 'wall: ',
    'required'  => false,));
}

1 个答案:

答案 0 :(得分:3)

在我使用已经保留的已检查值重新加载表单后,我收到了同样的错误。

/**
 * @var integer
 *
 * @ORM\Column(name="is_recibido", type="integer", nullable=true)
 */
private $isRecibido=null;

然后我更改为

/**
 * @var integer
 *
 * @ORM\Column(name="is_recibido", type="boolean", nullable=true)
 */
private $isRecibido=null;

数据库中的字段是整数,但是doctrine理解并将其转换为boolean到表单,并在转到数据库时将其转换为Integer。

现在一切都开始顺利而且很好了