src/Form/Dto/BlogFeedback.php line 10

Open in your IDE?
  1. <?php
  2. namespace App\Form\Dto;
  3. use App\Form\Contracts\FormDtoInterface;
  4. use Symfony\Component\Validator\Constraints as Assert;
  5. use Symfony\Component\Validator\Context\ExecutionContextInterface;
  6. class BlogFeedback implements FormDtoInterface
  7. {
  8.     /**
  9.      * @var string Имя
  10.      * @Assert\NotBlank(message="Введите имя")
  11.      */
  12.     public $name;
  13.     /**
  14.      * @var string Телефон
  15.      */
  16.     public $phone;
  17.     /**
  18.      * @var string Email
  19.      */
  20.     public $email;
  21.     /**
  22.      * @var string Сообщение
  23.      * @Assert\NotBlank(message="Введите сообщение")
  24.      */
  25.     public $message;
  26.     public function subject(): string
  27.     {
  28.         return 'Обратная связь из блога';
  29.     }
  30.     /**
  31.      * @Assert\Callback()
  32.      *
  33.      * @param ExecutionContextInterface $context
  34.      * @param                           $payload
  35.      *
  36.      * @return void
  37.      */
  38.     public function validate(ExecutionContextInterface $context$payload): void
  39.     {
  40.         if (empty($this->phone) && empty($this->email)) {
  41.             $context->buildViolation('Введите телефон и/или email')
  42.                 ->atPath('phone')
  43.                 ->addViolation();
  44.         }
  45.     }
  46. }