Advertisement
giakAdi

CategoryType

May 21st, 2020
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.07 KB | None | 0 0
  1. <?php
  2.  
  3.   namespace App\Form;
  4.  
  5.   use App\Entity\Category;
  6.   use App\Form\DataTransformer\CategoryToNumberTransformer;
  7.   use Symfony\Bridge\Doctrine\Form\Type\EntityType;
  8.   use Symfony\Component\Form\AbstractType;
  9.   use Symfony\Component\Form\Extension\Core\Type\FileType;
  10.   use Symfony\Component\Form\Extension\Core\Type\SubmitType;
  11.   use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  12.   use Symfony\Component\Form\Extension\Core\Type\TextType;
  13.   use Symfony\Component\Form\FormBuilderInterface;
  14.   use Symfony\Component\OptionsResolver\OptionsResolver;
  15.  
  16.   class CategoryType extends AbstractType
  17.   {
  18.     /**
  19.      * @var \App\Form\DataTransformer\RoleToNumberTransformer
  20.      */
  21.     private $transformer;
  22.  
  23.     public function __construct(CategoryToNumberTransformer $transformer) {
  24.       $this->transformer = $transformer;
  25.     }
  26.  
  27.     public function buildForm(FormBuilderInterface $builder, array $options)
  28.     {
  29.  
  30.       $builder
  31.         ->add('name', TextType::class, ['attr' => ['class' => 'form-control', 'autocomplete' => 'off']])
  32.         ->add('thumbnail', FileType::class, ['data_class' => null, 'required'   => false, 'empty_data' => null, 'attr' => ['class' => 'form-control-file', 'autocomplete' => 'off']])
  33.  
  34.         ->add('parentCategory', EntityType::class, [
  35.           'class'         => Category::class,
  36.           'placeholder'   => 'None',
  37.           'empty_data'    => $options['data']->getParentCategory() ,
  38.           'required'      => false,
  39.           'multiple'      => false,
  40.           'expanded'      => false,
  41.           'choice_label'  => function ($parentCat) { return $parentCat->getName();}
  42.         ])
  43.  
  44.         ->add('description', TextareaType::class, ['required' => false, 'label'  => 'Description', 'attr' => ['class' => 'form-control', 'autocomplete' => 'off']])
  45.         ->add('save', SubmitType::class, ['attr' => ['class' => 'btn btn-primary']])
  46.       ;
  47.     }
  48.  
  49.     public function configureOptions(OptionsResolver $resolver)
  50.     {
  51.       $resolver->setDefaults([
  52.         'data_class' => Category::class,
  53.       ]);
  54.     }
  55.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement