我目前正在尝试创建一个表单,其中的字段默认填充了数据库中的数据。
我用:
$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,));
}
答案 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。
现在一切都开始顺利而且很好了