TYPO3:跳过子对象

时间:2018-03-19 14:03:26

标签: typo3 extbase typo3-8.x

我有一个名为"文件"和模型"用户"。模型"用户"是模型的一部分"文件"作为一个有m:n关系的孩子。

此外,我有一个表格,有人可以设置一个新的"文件"。 " user"的一些属性也是形式,但不是全部。想要跳过不在表单中的人的验证。我通过两种模型验证表格。

类似

$this->arguments->getArgument('document')->getPropertyMappingConfiguration()->skipProperties('title');

我可以从验证中禁用属性标题,效果很好。如果我替换" title"使用"用户","用户"将不会被验证。不错,但是完整的子对象"用户"被删除,所以我没有在前端为"用户"做出任何数据。了。糟糕!

所以,我不想禁用" user"完整但单一的属性。我试过

$this->arguments->getArgument('document')->getPropertyMappingConfiguration()->skipProperties('user.*.firstname');

禁用" firstname"的验证来自"用户"但它不起作用。我做错了什么?

感谢您的时间和帮助。

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

$mappingConfiguration = $this->arguments->getArgument('document')->getPropertyMappingConfiguration();
$mappingConfiguration->forProperty('user')
  ->skipProperties('firstname', 'lastname', 'email', …);

你可以用这个建立一个完整的路径,所以如果你有多个用户,您可以使用

$mappingConfiguration->forProperty('users')
  ->forProperty(*)
  ->skipProperties('firstname', 'lastname', 'email', …);

请参阅documentation for the property mapper