TYPO3-Версия: 8.7.7
Я хочу получить доступ к $this->request->getArguments()
в валидаторе для TYPO3 на PHP.
Я установил временное поле в жидкости с помощью:
<label for="reenter_password" class="reenter_password{rm:hasError(property:'reenter_password',then:' text-danger')}">
Reenter Password*
</label><br>
<f:form.password name="reenter_password" id="reenter_password"/>
Если я установил property
вместо name
в <f:form.password name="reenter_password" id="reenter_password"/>
, я получаю следующую ошибку:
# 1297759968: Исключение при сопоставлении свойств в пути к свойству "": свойство "reenter_password" не было найдено в целевом объекте типа "RM \ RmRegistration \ Domain \ Model \ User".
Я не хочу устанавливать свойство модели, потому что это свойство должно использоваться только для проверки равенства с полем пароля и не должно получать TCA или SQL-таблицу для хранения.
Вот мое действие, в котором я вызываю валидаторы:
/**
* Complete New User Registeration
*
* @param User $newRegisteredUser
* @validate $newRegisteredUser \RM\RmRegistration\Validation\Validator\NewRegisteredUser
* @validate $newRegisteredUser \RM\RmRegistration\Validation\Validator\CompleteProfileUser
*/
public function completeNewRegisteredUserAction(User $newRegisteredUser)
{
// Store Changes, Update and Persist
$newRegisteredUser->setPassword($this->saltThisPassword($newRegisteredUser->getPassword()));
$this->userRepository->update($newRegisteredUser);
$this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\PersistenceManager')->persistAll();
}
В Валидаторе я могу попасть в поле пароля с помощью:
\TYPO3\CMS\Core\Utility\GeneralUtility::_POST()['tx_rmregistration_registration']['reenter_password']
Но возможно ли получить временное значение в UserModel, чтобы проверить его в валидаторе следующим образом:
// Compare Entered Passwords
if ($user->getPassword() == $user->getReenteredPassword()) {
return TRUE;
} else {
return FALSE;
}