registerAttributeCallback( 'value', function () { if ($this->hasValue() && count($this->getValueCandidates()) === 1 && $this->isFormValid) { return self::DUMMYPASSWORD; } if (parent::getValue() === self::DUMMYPASSWORD) { return self::DUMMYPASSWORD; } return null; } ); } public function onRegistered(Form $form) { $form->on(Form::ON_VALIDATE, function ($form) { $this->isFormValid = $form->isValid(); }); } public function getValue() { $value = parent::getValue(); $candidates = $this->getValueCandidates(); while ($value === self::DUMMYPASSWORD) { $value = array_pop($candidates); } return $value; } }