Symfony Form Transformer для CheckboxType: String to Bool - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть форма symfony4, которая имеет CheckboxType и отправлена ​​со строковыми значениями ('0' или '1').Теперь я хочу преобразовать их в логические значения.При получении данных (просмотр преобразования) должно быть возвращено логическое значение.Я следовал этому руководству .

$builder->add('box', CheckboxType::class, [
    'required' => false,
])
$builder->get('box')->addModelTransformer(new CallbackTransformer([$this, 'modelTransform'], [$this, 'modelReverseTransform']));
$builder->get('box')->addViewTransformer(new CallbackTransformer([$this, 'viewTransform'], [$this, 'viewReverseTransform']));

Я попробовал следующие функции, но затем значение box даже не включается в вывод.

// view reverse transform
public function viewReverseTransform($string)
{
    var_dump('viewReverseTransform', $string);
    return $string === '1';
}

// view transform -> output
public function viewTransform($bool)
{
    var_dump('viewTransform', $bool);
    return $bool;
    //return $bool === true ? '1' : '0';
}

// model reverse transform
public function modelReverseTransform($bool) {
    var_dump('modelReverseTransform', $bool);
    return $bool;
}

// model transform
public function modelTransform($bool) {
    var_dump('modelTransform', $bool);
    return $bool;
}

Я пробовал также другое приведение, но оно не отображает значения правильно.

1 Ответ

0 голосов
/ 20 февраля 2019

Я узнал, что сначала мне нужно сбросить через $builder->get('box')->resetViewTransformers().Тогда это работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...