入力に何も書き込まれていない場合、フィールド NULL を設定する方法は?
フィールドを無効にするチェックボックスが欲しいです。(フィールドが空白の場合でも、mysql フィールドに NULL が必要です)
入力に何も書き込まれていない場合、フィールド NULL を設定する方法は?
フィールドを無効にするチェックボックスが欲しいです。(フィールドが空白の場合でも、mysql フィールドに NULL が必要です)
symfony2 と sonata-admin でそれを達成するための有効な方法を提案させてください
特に nullable = true のブール値フィールドに使用されます (注意: 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
;
}
それが役立つことを願っています! 乾杯、ヴィンス