如果输入中没有写入任何内容,如何设置字段 NULL ?
我想要一个复选框来 NULLIFY 该字段。(即使字段为空,mysql字段也需要NULL)
如果输入中没有写入任何内容,如何设置字段 NULL ?
我想要一个复选框来 NULLIFY 该字段。(即使字段为空,mysql字段也需要NULL)
让我建议一种在 symfony2 和 sonata-admin 中实现这一目标的有效方法
专门用于具有 nullable = true 的布尔字段(nb:symfony2 中的 mysql 字段布尔实际上是 tinyint:1)
一旦它被编辑,这样的字段通常会传递给 true 但如果你拦截请求并评估给定字段的值,你可以像这样修改它:
在您的管理类中,假设对象的属性是属性
public function prePersist($object)
{
if (in_array($object->getProperty(), array(NULL, '', '3',)))
$object->setProperty(NULL);
}
public function preUpdate($object)
{
if (in_array($object->getProperty(), array(NULL, '', '3',)))
$object->setProperty(NULL);
}
数字 3 是我在我的案例中为需要 null 的选择实现的
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('property', 'choice', array(
'choices' => array(
'3' => 'Yes and No',
'0' => 'No',
'1' => 'Yes',
),
'empty_value' => false,// unset this and empty would work also
'required' => false,
))
// ->add('property', null, array('required' => false))// checkbox if bool
;
}
希望有帮助!干杯,文斯