* * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Sonata\AdminBundle\Form\Type; use Sonata\AdminBundle\Form\DataTransformer\ModelToIdTransformer; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\OptionsResolver\OptionsResolverInterface; /** * This type define a standard hidden field, that stored id to a object. * * @author Andrej Hudec */ class ModelHiddenType extends AbstractType { /** * {@inheritdoc} */ public function buildForm(FormBuilderInterface $builder, array $options) { $builder ->addViewTransformer(new ModelToIdTransformer($options['model_manager'], $options['class']), true) ; } /** * {@inheritdoc} * * @todo Remove it when bumping requirements to SF 2.7+ */ public function setDefaultOptions(OptionsResolverInterface $resolver) { $this->configureOptions($resolver); } /** * {@inheritdoc} */ public function configureOptions(OptionsResolver $resolver) { $resolver->setDefaults(array( 'model_manager' => null, 'class' => null, )); } /** * {@inheritdoc} */ public function getParent() { return 'hidden'; } /** * {@inheritdoc} * * @todo Remove when dropping Symfony <2.8 support */ public function getName() { return $this->getBlockPrefix(); } /** * {@inheritdoc} */ public function getBlockPrefix() { return 'sonata_type_model_hidden'; } }