2013-04-02 3 views
0

Как установить поле NULL, если ничего не было записано на входе?

Я хотел бы установить флажок в поле NULLIFY. (Даже если поле пустое, нужно NULL в туздо поле)

ответ

0

Позволь мне предложить правильный путь для достижения этой цели в Symfony2 и сонатном администраторе

специально используются для булева поля с обнуляемой = True (пью : mysql field boolean в symfony2 на самом деле 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 
    ; 
} 

Надежда, что помогает! Cheers, Vince

+0

Вы делаете это за всю свою недвижимость? я не понимаю, что такое $ object – ibasaw

+0

, для тех, кому нужно ... $ object - это объект, которым вы управляете ... это может быть, например, статья с опубликованным свойством. (где, возможно, флаг между ними, ни 0, ни 1, не означает, что он находится в состоянии проверки ...) В таком случае сценарий будет выглядеть так: $ object-> getPublished() и $ object- > setPublished (NULL) – MediaVince

 Смежные вопросы

  • Нет связанных вопросов^_^