symfony campo booleano em forma

votos
10

Eu tenho esse campo na entidade:

/**
* @ORM\Column(type=boolean)
*/
protected $done = 0;

No banco de dados é tinyint(1). Quando eu tentar adicioná-lo em uma forma:

$builder
   ->add('done', 'checkbox')

Ele lança um erro:

Unable to transform value for property path done: Expected a Boolean.

Hã? não é booleano?

Publicado 19/10/2015 em 07:35
fonte usuário
Em outras línguas...                            


2 respostas

votos
21

0 ou 1 não são booleanos. Eles são inteiros. Use verdadeiro / falso em seu modelo de domínio.

/**
 * @ORM\Column(type="boolean")
 */
protected $done = false;
Respondeu 19/10/2015 em 07:40
fonte usuário

votos
0

muito obrigado para a solução, mas isso não funcionou para mim. Eu uso symfony 4. Isto é como eu realizado,

Entidade,

/**
* @ORM\Column(type="boolean")
*/
protected $done = 0;

public function getDone(): ?bool
{
    return $this->done;
}

public function setDone(?bool $done): self
{
    $this->done = $done;

    return $this;
}

FormType,

->add('done', CheckboxType::class, array(
    'required' => false,
    'value' => 1,
))

Eu precisava para adicionar uso CheckboxType desde que eu chamar a classe. (use Symfony \ Component \ Form \ Extension \ Core \ tipo \ CheckboxType;) Se você executar "php doutrina bin / console: migrações: diff" db irá adicionar tinyint (1) Campo

Respondeu 24/08/2018 em 04:48
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more