Я хочу проверить объект пользователя с пользовательским ограничением & валидатор. До сих пор он работает, когда запускается форма рабочего процесса, но если я запустить его вручную, я освобождаю одно отношение я настройки перед вызовом проверки:Symfony вручную проверяет сущность с отношением
UserController:
$user = new User();
$user->setRoles($roles);
$user->setSite($site);
...
$violations = $this->container->get('validator')->validate($user);
объект пользователя с отношением сайта:
/**
* @var Site the site linked to the entity
* @ORM\ManyToOne(targetEntity="LCH\MultisiteBundle\Entity\Site", cascade={"all"})
* @ORM\JoinColumn(name="site_id", referencedColumnName="id", onDelete="CASCADE")
*/
protected $site;
Validator:
public function validate($user, Constraint $constraint)
{
$email = $user->getEmail();
// $site var is null while other "direct fields are filled
$site = $user->getSite();
$roles = $user->getRoles();
$username = $user->getUsername();
Как я могу вручную validat e этот объект использует предыдущее заданное отношение?
Как вы получаете $ site из репозитория? – Edu
Да, с помощью встроенного метода find ($ id), с $ id, предоставленным типом в форме. Вы думаете о проблеме с областью EntityManager? – nbonniot
Вы можете попробовать сохранить свой пользователь перед проверкой – Edu