Мне было интересно, есть ли способ сравнить старые и новые значения в валидаторе внутри объекта до флеша.
У меня есть объект Server
, который отлично отображает форму. Сущность имеет отношение к status
(N- > 1), которое, когда статус изменен с Unracked
на Racked
, требует проверки доступа SSH и FTP к серверу. Если доступ не достигнут, валидатор должен выйти из строя.
Я сопоставил обратный вызов валидатора с методом isServerValid()
внутри объекта Server
, как описано здесь
http://symfony.com/doc/current/reference/constraints/Callback.html. Я могу, очевидно, получить доступ к "новым" значениям через $this->status
, но как получить исходное значение?
В псевдокоде что-то вроде этого:
public function isAuthorValid(ExecutionContextInterface $context)
{
$original = ... ; // get old values
if( $this->status !== $original->status && $this->status === 'Racked' && $original->status === 'Unracked' )
{
// check ftp and ssh connection
// $context->addViolationAt('status', 'Unable to connect etc etc');
}
}
Спасибо заранее!