src/Form/Type/DepotAnnonce/ValidatorRaisonCession.php line 34

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. /**
  4.  * @author Mehrez Labidi
  5.  */
  6. namespace App\Form\Type\DepotAnnonce;
  7. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  8. use Symfony\Component\Form\Extension\Core\Type\TextareaType;
  9. use Symfony\Component\Form\FormEvent;
  10. use Symfony\Component\Form\FormEvents;
  11. use Symfony\Component\Validator\Constraints as Assert;
  12. use Symfony\Component\Validator\Constraints\NotBlank;
  13. class ValidatorRaisonCession implements EventSubscriberInterface {
  14.     /**
  15.      * @return string[]
  16.      */
  17.     public static function getSubscribedEvents(): array {
  18.         return [
  19.             FormEvents::PRE_SET_DATA => 'onPreSetData',
  20.             FormEvents::PRE_SUBMIT => 'onPreSubmit'
  21.         ];
  22.     }
  23.     /**
  24.      * 
  25.      * @param FormEvent $event
  26.      * @return void
  27.      */
  28.     public function onPreSetData(FormEvent $event): void {
  29.         $this->validation($event);
  30.     }
  31.     /**
  32.      * 
  33.      * @param FormEvent $event
  34.      * @return void
  35.      */
  36.     public function onPreSubmit(FormEvent $event): void {
  37.         $this->validation($event);
  38.     }
  39.     private function validation($event) {
  40.         $user $event->getData();
  41.         $form $event->getForm();
  42.         if (array_key_exists('id_raison_cession'$user)) {
  43.             /***************************************************************************************************************************/
  44.             /*****  si Raison principale de la cession  ==  Autre , id = 6 alors  raison_cession devient obligatoire:******************/
  45.             /*****  * Complements sur la raison de cession (Obligatoire si la raison de cession est autre)******************/
  46.            /********************************************************************************************************************************************/
  47.             if ($user['id_raison_cession'] == '6') {
  48.                 $form->add('raison_cession'TextareaType::class,
  49.                         [
  50.                             "constraints" =>
  51.                             [
  52.                                 new Assert\Length(['max' => 3000'maxMessage' => "Le champ Raison Cession est trop long"]),
  53.                                 new NotBlank(["message" => "Le champ Raison Cession est obligatoire"])
  54.                             ],
  55.                             "attr" => [
  56.                                 "rows" => 8,
  57.                                 "placeholder" => "",
  58.                                 "autocomplete" => "off"
  59.                             ]
  60.                         ]
  61.                 );
  62.             } else {
  63.                 $form->add('raison_cession'TextareaType::class,
  64.                         [
  65.                             "constraints" =>
  66.                             [
  67.                                 new Assert\Length(['max' => 3000'maxMessage' => "Le champ Raison Cession est trop long"])
  68.                             ],
  69.                             "attr" => [
  70.                                 "rows" => 8,
  71.                                 "placeholder" => "",
  72.                                 "autocomplete" => "off"
  73.                             ]
  74.                         ]
  75.                 );
  76.             }
  77.         }
  78.     }
  79. }