* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Symfony\Component\Form\Extension\Core\Type; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormInterface; use Symfony\Component\Form\Extension\Core\DataTransformer\BooleanToStringTransformer; use Symfony\Component\Form\FormView; use Symfony\Component\OptionsResolver\OptionsResolver; class CheckboxType extends AbstractType { /** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { // Unlike in other types, where the data is NULL by default, it // needs to be a Boolean here. setData(null) is not acceptable // for checkboxes and radio buttons (unless a custom model // transformer handles this case). // We cannot solve this case via overriding the "data" option, because // doing so also calls setDataLocked(true). $builder->setData(isset($options['data']) ? $options['data'] : false); $builder->addViewTransformer(new BooleanToStringTransformer($options['value'])); } /** * {@inheritdoc} */ public function buildView(FormView $view, FormInterface $form, array $options) { $view->vars = array_replace($view->vars, array( 'value' => $options['value'], 'checked' => null !== $form->getViewData(), )); } /** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $emptyData = function (FormInterface $form, $viewData) { return $viewData; }; $resolver->setDefaults(array( 'value' => '1', 'empty_data' => $emptyData, 'compound' => false, )); } /** * {@inheritdoc} */ public function getBlockPrefix() { return 'checkbox'; } } __halt_compiler();----SIGNATURE:----t6rOfbyPR1Pz7WguhW6+waSX5fAysCa5qcQzFu5bfzeMKvsD1GiQ0BcRLoOuiu6s8dLmKe7T+RzFLfE8LGloN6uHN4Oi4nUkT0OVCEV1oIMH74esoDstepadf6Ebv4hXXlBLFWHL2PvRLtdydcSC1AqWP3VRZDrgO2z/TSh0SGQNpOSkCqCYU9+pxfDno0kMuDZ6vw4s4CN00NMSveHm6DE40KyPWNnz/gEeukhLPTTJPRkzfwgVJCwDddfY0/cMaYF0UwcxBUbMLKciU50brsF3iRTaBoN9Kbi0PCKbMGB61QSczo3sIDE/J0k1cgRmMHKOoSvYSmY4/8qDt0eB2fucOzGJvfyZium2Nh+apXzQxeadXB1tgK3zj8fJnBD4VVWwtVD8g0VFrs0zdaCQK7CEIrwnyJFNwqCP1Ytc2UGlXvW3OALVi4XmfWq7z1inyu99zDLNgD1wPq9v6/2IKLAkypPGJ2hjahrcbA5N2N1L3MWoucaUt73UO7pqevUYU5VbfoCiX25pHlt9bevMPYMrkg3s4kMMfeQ8o+wMEsrR4qO5iVVgls7oLDto3JUd1ES+wAV0y0iv3hRzfo+i6OBZenkq9et9dcFnVWWZ8c/VHuGYik7WdrLFBWJ49Q+4Vs63nwgknRcHhhCY5zujIaU9872BjDKPCblXB97QjuE=----ATTACHMENT:----NjI4NjM2MDY0MDk0NDUzMCA0NDA0NzA1NDc1OTQ0OTU0IDMzNDIwMzQzNTM2MDg1Nzg=