通常,在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);
}