通常,在Extbase中,我自己在控制器内处理表单验证,尤其是当我需要高级方案时,但是现在我具有许多字段的简单但大型表单,因此我决定不浪费时间,而只使用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过程中进行验证。

因此,您的示例将是:

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

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

08-18 19:57