src/Form/DistributorFormType.php line 19

Open in your IDE?
  1. <?php
  2. namespace App\Form;
  3. use App\Entity\Countries;
  4. use App\Entity\Distributors;
  5. use Doctrine\ORM\EntityManagerInterface;
  6. use FOS\CKEditorBundle\Form\Type\CKEditorType;
  7. use Symfony\Component\Form\AbstractType;
  8. use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
  9. use Symfony\Component\Form\Extension\Core\Type\FileType;
  10. use Symfony\Component\Form\Extension\Core\Type\PasswordType;
  11. use Symfony\Component\Form\Extension\Core\Type\TextType;
  12. use Symfony\Component\Form\FormBuilderInterface;
  13. use Symfony\Component\OptionsResolver\OptionsResolver;
  14. use Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface;
  15. use Symfony\Component\Security\Core\Security;
  16. class DistributorFormType extends AbstractType
  17. {
  18.     private $em;
  19.     private $token;
  20.     public function __construct(EntityManagerInterface $emTokenStorageInterface $token)
  21.     {
  22.         $this->em $em;
  23.         $this->token $token;
  24.     }
  25.     public function buildForm(FormBuilderInterface $builder, array $options): void
  26.     {
  27.         $countries $this->em->getRepository(Countries::class)->findAll();
  28.         $country_id '';
  29.         if($this->token->getToken() != null) {
  30.             if($this->token->getToken()->getUser()->getDistributor()->getAddressCountry() != null) {
  31.                 $country_id $this->token->getToken()->getUser()->getDistributor()->getAddressCountry()->getId();
  32.             }
  33.         }
  34.         $arr[''] = 'Select Your Country';
  35.         foreach($countries as $country){
  36.             $arr[$country->getId()] = $country->getName();
  37.         }
  38.         $builder
  39.             ->add('distributorName'TextType::class, [
  40.                 'label' => 'Company Name',
  41.                 'required' => false,
  42.             ])
  43.             ->add('logo'FileType::class, [
  44.                 'label' => 'Logo',
  45.                 'required' => false,
  46.             ])
  47.             ->add('telephone'TextType::class, [
  48.                 'label' => 'Telephone',
  49.                 'required' => false,
  50.             ])
  51.             ->add('email'TextType::class, [
  52.                 'label' => 'Email',
  53.                 'required' => false,
  54.             ])
  55.             ->add('website'TextType::class, [
  56.                 'label' => 'Website',
  57.                 'required' => false,
  58.             ])
  59.             ->add(
  60.                 'addressCountry',
  61.                 ChoiceType::class,
  62.                 [
  63.                     'label' => 'Select a Country',
  64.                     'choices' => array_flip($arr),
  65.                     'required' => false,
  66.                     'data' => $country_id,
  67.                 ]
  68.             )
  69.             ->add('addressStreet'TextType::class, [
  70.                 'label' => 'Street Address',
  71.                 'required' => false,
  72.             ])
  73.             ->add('addressCity'TextType::class, [
  74.                 'label' => 'City',
  75.                 'required' => false,
  76.             ])
  77.             ->add('addressPostalCode'TextType::class, [
  78.                 'label' => 'Postal Code',
  79.                 'required' => false,
  80.             ])
  81.             ->add('addressState'TextType::class, [
  82.                 'label' => 'State',
  83.                 'required' => false,
  84.             ])
  85.             ->add('about'CKEditorType::class, [
  86.                 'label' => 'About',
  87.                 'required' => false,
  88.                 'config' => [
  89.                     'toolbar' => 'basic'
  90.                 ]
  91.             ])
  92.             ->add('operatingHours'CKEditorType::class, [
  93.                 'label' => 'Operating Hours',
  94.                 'required' => false,
  95.                 'config' => [
  96.                     'toolbar' => 'basic'
  97.                 ]
  98.             ])
  99.             ->add('refundPolicy'CKEditorType::class, [
  100.                 'label' => 'Refund Policy',
  101.                 'required' => false,
  102.                 'config' => [
  103.                     'toolbar' => 'basic'
  104.                 ]
  105.             ])
  106.             ->add('salesTaxPolicy'CKEditorType::class, [
  107.                 'label' => 'Sales Tax Policy',
  108.                 'required' => false,
  109.                 'config' => [
  110.                     'toolbar' => 'basic'
  111.                 ]
  112.             ])
  113.             ->add('shippingPolicy'CKEditorType::class, [
  114.                 'label' => 'Shipping Policy',
  115.                 'required' => false,
  116.                 'config' => [
  117.                     'toolbar' => 'basic'
  118.                 ]
  119.             ])
  120.             ->add('isManufaturer'ChoiceType::class, [
  121.                 'choices' => [
  122.                     'Yes' => 1,
  123.                     'No' => 0,
  124.                 ]
  125.             ])
  126.             ->add(
  127.                 'logo',
  128.                 FileType::class,
  129.                 [
  130.                     'required' => false,
  131.                 ]
  132.             )
  133.         ;
  134.     }
  135.     public function configureOptions(OptionsResolver $resolver): void
  136.     {
  137.         $resolver->setDefaults([
  138.             'data_class' => Distributors::class,
  139.         ]);
  140.     }
  141. }