0
如何在輸入中未寫入任何內容時設置字段NULL?
我想有一個複選框來NULLIFY字段。 (即使該字段爲空,需要在MySQL領域NULL)
如何在輸入中未寫入任何內容時設置字段NULL?
我想有一個複選框來NULLIFY字段。 (即使該字段爲空,需要在MySQL領域NULL)
讓我提出一個有效的方式來完成,在Symfony2中和奏鳴曲管理員
專門用於可空=真 (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是我在我的情況下,實施了一個選擇在需要空
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
;
}
希望幫助! 乾杯, 文斯
你這樣做你的所有財產?我不明白什麼是$ object – ibasaw
實際上,對於那些你需要... $ object是真正的你正在管理的實體...它可以是例如具有已發佈屬性的文章。 (可能是之間的國旗,既不是0也不是1,表示它處於驗證狀態......) 在這種情況下,腳本將如下所示: $ object-> getPublished()和$ object- > setPublished(NULL) – MediaVince