private function initActionOptions() { $this->actionOptionsResolver = new OptionsResolver(); $this->actionOptionsResolver->setRequired(array('route_name')); $this->actionOptionsResolver->setDefined(array('element')); $self = $this; $this->actionOptionsResolver->setDefaults(array('route_name' => function (Options $options) use($self) { return $self->getDefaultRouteName($options); }, 'additional_parameters' => array(), 'label' => null)); $this->actionOptionsResolver->setNormalizer('additional_parameters', function (Options $options, $value) use($self) { return $self->normalizeAdditionalParameters($options, $value); }); $this->actionOptionsResolver->setAllowedTypes('element', 'string'); $this->actionOptionsResolver->setAllowedTypes('route_name', 'string'); $this->actionOptionsResolver->setAllowedTypes('additional_parameters', 'array'); $this->actionOptionsResolver->setAllowedTypes('label', array('string', 'null')); }
public function setDefaultOptions(OptionsResolverInterface $resolver) { $resolver->setDefined('entityName'); $resolver->setRequired('entityName'); $resolver->setAllowedTypes('entityName', 'string'); $resolver->setDefault('invalid_message', function (Options $options) { return 'This value is not valid. Unable to find ' . $options['entityName'] . ' in the database.'; }); }
/** * {@inheritdoc} */ public function setDefaultOptions(OptionsResolverInterface $resolver) { $compound = function (Options $options) { return $options['widget'] !== 'single_text'; }; // Defaults to the value of "widget" $dateWidget = function (Options $options) { return $options['widget']; }; // Defaults to the value of "widget" $timeWidget = function (Options $options) { return $options['widget']; }; $resolver->setDefaults(array('input' => 'datetime', 'model_timezone' => null, 'view_timezone' => null, 'format' => self::HTML5_FORMAT, 'date_format' => null, 'widget' => null, 'date_widget' => $dateWidget, 'time_widget' => $timeWidget, 'with_minutes' => true, 'with_seconds' => false, 'html5' => true, 'by_reference' => false, 'error_bubbling' => false, 'data_class' => null, 'compound' => $compound)); // Don't add some defaults in order to preserve the defaults // set in DateType and TimeType $resolver->setDefined(array('empty_value', 'placeholder', 'years', 'months', 'days', 'hours', 'minutes', 'seconds')); $resolver->setAllowedValues(array('input' => array('datetime', 'string', 'timestamp', 'array'), 'date_widget' => array(null, 'single_text', 'text', 'choice'), 'time_widget' => array(null, 'single_text', 'text', 'choice'), 'widget' => array(null, 'single_text', 'text', 'choice'))); }