<?php
namespace App\Form\Dto;
use App\Form\Contracts\FormDtoInterface;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Component\Validator\Context\ExecutionContextInterface;
class BlogFeedback implements FormDtoInterface
{
/**
* @var string Имя
* @Assert\NotBlank(message="Введите имя")
*/
public $name;
/**
* @var string Телефон
*/
public $phone;
/**
* @var string Email
*/
public $email;
/**
* @var string Сообщение
* @Assert\NotBlank(message="Введите сообщение")
*/
public $message;
public function subject(): string
{
return 'Обратная связь из блога';
}
/**
* @Assert\Callback()
*
* @param ExecutionContextInterface $context
* @param $payload
*
* @return void
*/
public function validate(ExecutionContextInterface $context, $payload): void
{
if (empty($this->phone) && empty($this->email)) {
$context->buildViolation('Введите телефон и/или email')
->atPath('phone')
->addViolation();
}
}
}