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;
}
}