validation - TYPO3/Extbase - 如何在验证/保存对象之前修剪值?

标签 validation typo3 extbase typo3-6.2.x

在 Extbase 中,我通常在 Controller 中自己处理表单验证,特别是当我需要高级场景时,但现在我有简单但包含许多字段的大型表单,所以我决定不浪费时间,只使用 TYPO3 的验证器。到目前为止,总的来说它是有效的,无论如何我不能强制 Extbase 在验证之前修剪值,结果 Extbase 节省了大量空间......所以它是无效的,示例:

/**
 * @var string
 * @validate StringLength(minimum=2, maximum=255)
 * @validate NotEmpty
 */
protected $fooName = '';

正如我所说,我有数十个字段,并且希望避免手动验证它......有什么解决方案吗?

注意:我尝试过extbase_filter ext,如果它有效的话,这将是一个很好的解决方案(不幸的是在 TYPO3 版本:6.2.6 上没有任何效果。

出于显而易见的原因,在表单发送之前使用 JS 来修剪值也不是一个解决方案。

最佳答案

您可以在 set* 方法中进行修剪。 Extabase 的 MVC 流程中的验证发生在调用set-ers之后

所以,你的例子是:

/**
 * @var string
 * @validate StringLength(minimum=2, maximum=255)
 * @validate NotEmpty
 */
protected $fooName = '';

public function setFooName($fooName)
{
    $this->fooName = trim($fooName);
}

关于validation - TYPO3/Extbase - 如何在验证/保存对象之前修剪值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33657431/

相关文章:

validation - Grails 测试 : New instance resolved to null if followed by . 验证()

验证用户名时的 PHP 错误

validation - 如何从我的 Xtext 验证器访问项目的首选项?

typo3 - 如何将 CSS 添加到 TYPO9.5 扩展?

plugins - TYPO3 4.7.2 通过 typescript 包含 extbase 插件

php - 在 TYPO3 7.6 中找不到包的有效 ext_emconf.php 文件

reactjs - 处理前端的后端错误状态

css - 打字错误3 EXT :Content Element Wrap and EXT:GridElements

Typo3 TCA 选择字段应填写值而不是 id

TYPO3 FileReference 存储库查询通过文件名搜索