Symfony2 Form Validator - porównywanie starych i nowych wartości przed opróżnieniem
Zastanawiałem się, czy istnieje sposób na porównanie starych i nowych wartości w walidatorze w obrębie jednostki przed spłukiwaniem.
mamServer
obiekt, który renderuje formularz w porządku. Jednostka ma związek zstatus
(N-> 1), które po zmianie statusu zUnracked
doRacked
, musi sprawdzić dostęp SSH i FTP do serwera. Jeśli dostęp nie zostanie osiągnięty, walidator powinien zawieść.
Odwzorowałem wywołanie zwrotne walidatora na metodęisServerValid()
w obrębieServer
istota opisana tutajhttp://symfony.com/doc/current/reference/constraints/Callback.html. Oczywiście mogę uzyskać dostęp do „nowych” wartości$this->status
, ale jak mogę uzyskać oryginalną wartość?
W pseudo-kodzie coś takiego:
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');
}
}
Z góry dziękuję!