0

入力に何も書き込まれていない場合、フィールド NULL を設定する方法は?

フィールドを無効にするチェックボックスが欲しいです。(フィールドが空白の場合でも、mysql フィールドに NULL が必要です)

4

1 に答える 1

0

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
    ;
}

それが役立つことを願っています! 乾杯、ヴィンス

于 2013-08-21T08:23:45.687 に答える