TYPO3/Extbase - 如何在 validation/saving 对象之前 trim 值?
TYPO3/Extbase - How to trim values before validation/saving objects?
在 Extbase 中,我通常在控制器中自己处理表单验证,尤其是当我需要高级场景时,但现在我的表单很简单,但有很多字段,所以我决定不浪费时间,只使用 TYPO3 的验证器.到目前为止,它总体上很好用,无论如何我不能在验证之前强制 Extbase 为 trim 值,结果 Extbase 节省了很多空间......所以它是无效的,示例:
/**
* @var string
* @validate StringLength(minimum=2, maximum=255)
* @validate NotEmpty
*/
protected $fooName = '';
正如我所说,我有数十个字段,希望避免手动验证它...有什么解决方案吗?
注意:我尝试了 extbase_filter
ext,如果它有效,这将是一个很好的解决方案(不幸的是,在 TYPO3 ver.: 6.2.6.
上没有任何效果
同样出于显而易见的原因,在表单发送之前使用 JS trimming 值也不是解决方案。
您可以在 set*
方法中执行 trim-ing。 Extabase 的 MVC 流程中的验证发生在 after set-ers invoked.
因此,您的示例将是:
/**
* @var string
* @validate StringLength(minimum=2, maximum=255)
* @validate NotEmpty
*/
protected $fooName = '';
public function setFooName($fooName)
{
$this->fooName = trim($fooName);
}
在 Extbase 中,我通常在控制器中自己处理表单验证,尤其是当我需要高级场景时,但现在我的表单很简单,但有很多字段,所以我决定不浪费时间,只使用 TYPO3 的验证器.到目前为止,它总体上很好用,无论如何我不能在验证之前强制 Extbase 为 trim 值,结果 Extbase 节省了很多空间......所以它是无效的,示例:
/**
* @var string
* @validate StringLength(minimum=2, maximum=255)
* @validate NotEmpty
*/
protected $fooName = '';
正如我所说,我有数十个字段,希望避免手动验证它...有什么解决方案吗?
注意:我尝试了 extbase_filter
ext,如果它有效,这将是一个很好的解决方案(不幸的是,在 TYPO3 ver.: 6.2.6.
同样出于显而易见的原因,在表单发送之前使用 JS trimming 值也不是解决方案。
您可以在 set*
方法中执行 trim-ing。 Extabase 的 MVC 流程中的验证发生在 after set-ers invoked.
因此,您的示例将是:
/**
* @var string
* @validate StringLength(minimum=2, maximum=255)
* @validate NotEmpty
*/
protected $fooName = '';
public function setFooName($fooName)
{
$this->fooName = trim($fooName);
}