Skip to content

Instantly share code, notes, and snippets.

@jaymecd
Forked from dbu/ImageType.php
Created June 6, 2014 21:21
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jaymecd/bd329f28629935f21ccb to your computer and use it in GitHub Desktop.
Save jaymecd/bd329f28629935f21ccb to your computer and use it in GitHub Desktop.
<?php
class ImageType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
if ($options['required_auto'] && ! $options['required']) {
$builder->addEventListener(\Symfony\Component\Form\FormEvents::PRE_SET_DATA, array($this, 'determineRequired'));
}
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array('required_auto' => true, 'required' => false));
}
public function determineRequired(FormEvent $event)
{
$data = $event->getData();
$form = $event->getForm();
if (! $data->isNew()) { // my model data knows if it is new or not
$config = $form->getConfig();
$reflection = new \ReflectionClass($config);
$reflection = $reflection->getParentClass();
$prop = $reflection->getProperty('required');
$prop->setAccessible(true);
$prop->setValue($config, true);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment