2011-12-19 2 views
-1

В настоящее время я пытаюсь создать форму с полями, заполненными данными из моей базы данных по умолчанию.Ожидаемый аргумент типа «Boolean», «string», указанный в Symfony2

Я использую:

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

Но я всегда получаю сообщение об ошибке: Прогнозный аргумент типа "Boolean", "строка", приведенная на 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

Я не думаю, что ваша ошибка исходит из этой части кода. Откуда ваше исключение? – Herzult

+0

Спасибо за ваш комментарий, исключение взято из: vendor/symfony/src/Symfony/Component/Form/Extension/Core/DataTransformer/BooleanToStringTransformer.php в строке 41 –

+0

Нужно больше кода, чтобы помочь вам ... Что в вашем классе TestType ? – AlterPHP

ответ

2

я получаю ту же ошибку, после того, как я перезарядил свою форму с проверяемым значением, которое было уже сохранялось.

/** 
* @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; 

поля в базе данных является целым числом, но доктрина понять и преобразовать его в булевой форму и Integer, когда он идет в базу данных.

Теперь все начало работать гладко и приятно

Смежные вопросы