/** * Builds the CSRF field. * * A validator is added to check the token value when the CSRF field is added to * a root form * * @param FormBuilder $builder The form builder * @param array $options The options */ public function buildForm(FormBuilder $builder, array $options) { $csrfProvider = $options['csrf_provider']; $intention = $options['intention']; $validator = function (FormInterface $form) use($csrfProvider, $intention) { if ((!$form->hasParent() || $form->getParent()->isRoot()) && !$csrfProvider->isCsrfTokenValid($intention, $form->getData())) { $form->addError(new FormError('The CSRF token is invalid. Please try to resubmit the form')); $form->setData($csrfProvider->generateCsrfToken($intention)); } }; $builder->setData($csrfProvider->generateCsrfToken($intention))->addValidator(new CallbackValidator($validator)); }
public function buildForm(FormBuilder $builder, array $options) { $builder->add('postDate'); if (!(!is_null($this->picture) && is_file($this->picture->getAbsolutePath()))) { $builder->add('file'); } else { $builder->add('id', 'hidden'); } $builder->add('description'); if (!is_null($this->picture)) { $builder->setData($this->picture); } }
/** * Builds the CSRF field. * * A validator is added to check the token value when the CSRF field is added to * a root form * * @param FormBuilder $builder The form builder * @param array $options The options */ public function buildForm(FormBuilder $builder, array $options) { $csrfProvider = $options['csrf_provider']; $intention = $options['intention']; $builder->setData($csrfProvider->generateCsrfToken($intention))->addEventSubscriber(new CsrfValidationListener($csrfProvider, $intention)); }
/** * This function return the form used in the product view page * * @param \Sonata\Component\Product\ProductInterface $product * @param \Symfony\Component\Form\FormBuilder $formBuilder * @param array $options * @return void */ public function defineAddBasketForm(ProductInterface $product, FormBuilder $formBuilder, array $options = array()) { $basketElement = $this->createBasketElement($product); // create the product form $formBuilder->setData($basketElement)->add('quantity', 'integer')->add('productId', 'hidden'); }
/** * This function return the form used in the product view page * * @param \Sonata\Component\Product\ProductInterface $product A Sonata product instance * @param \Symfony\Component\Form\FormBuilder $formBuilder Symfony form builder * @param boolean $showQuantity Specifies if quantity field will be displayed (default true) * @param array $options An options array * @return void */ public function defineAddBasketForm(ProductInterface $product, FormBuilder $formBuilder, $showQuantity = true, array $options = array()) { $basketElement = $this->createBasketElement($product); // create the product form $formBuilder->setData($basketElement)->add('productId', 'hidden'); if ($showQuantity) { $formBuilder->add('quantity', 'integer'); } else { $transformer = new QuantityTransformer(); $formBuilder->add($formBuilder->create('quantity', 'hidden', array('data' => 1))->addModelTransformer($transformer)); } }