我有typo3版本8.7.17
我有模型BookedDate,其属性availableDate带有指向父模型的链接。 AvailableDate模型具有ObjectStorage属性BookedDates。
我的验证失败,因为存在递归验证。我不需要我已经读过很多类似的问题,但是没有找到好的解决方案或任何对我有用的方法。
我尝试了它以及带有属性路径的其他变体:
$this->arguments->getArgument($book)
->getPropertyMappingConfiguration()
->forProperty('date.bookedDates.*')
->skipProperties('bookedDate');
我需要跳过BookedDate.date.bookedDates的验证
答案 0 :(得分:1)
我有类似的问题,但是没有人也回答过。 TYPO3: Remove validation from ObjectStorage property in model
到目前为止,我已经能够通过自定义功能从单一关系属性中删除验证:
public function removePropertyValidation($argument, $property)
{
if ($this->arguments->hasArgument($argument)) {
/** @var \TYPO3\CMS\Extbase\Validation\Validator\ConjunctionValidator */
$conjunctionValidator = $this->arguments->getArgument($argument)->getValidator();
//get all validators for argument
foreach ($conjunctionValidator->getValidators() as $validator) {
if ($validator instanceof ConjunctionValidator) {
foreach ($validator->getValidators() as $validators) {
//get all validators for property
if ($validators instanceof GenericObjectValidator) {
foreach ($validators->getPropertyValidators($property) as $propertyValidator) {
//remove only standard validator
if ($propertyValidator instanceof ConjunctionValidator) {
foreach ($propertyValidator->getValidators() as $valid) {
$propertyValidator->removeValidator($valid);
}
}
}
}
}
}
}
}
}
然后在您的initializeAction中添加:
$this->removePropertyValidation('book', 'date');