如何预先验证TYPO3 Flow中的整个模型

时间:2016-11-21 11:59:54

标签: php validation typo3-flow

我们建立一个这样的TYPO3 Flow模型:    

 | A | B | C | D |
1| 1 | 1 | 1 |   |
2| 2 | 3 | 3 |   |
3| 3 | 5 |   | 5 |
4| 4 |   |   |   |

在大多数情况下,您在ActionController中使用/* * * This script belongs to the Flow package "DS.Datenbank". * * * * */ use TYPO3\Flow\Annotations as Flow; use Some\Where\Domain\Model\User as USER; use Doctrine\ORM\Mapping as ORM; /** * @Flow\Entity */ class Modelname { /** * The text content * @var string * @Flow\Validate(type="NotEmpty") * @Flow\Validate(type="String") */ protected $content; /** * __construct * * @param $content the content */ public function __construct($content, $depth){ $this->content = $content; } /** * getContent * * Returns the content * @return $content */ public function getContent(){ return $this->content; } /** * setContent * * Set a new content * @param $content * @return void */ public function setContent($content){ $this->content = $content; } } ?> 。在这种情况下,我们需要在另一个模型中。但是我们没有像ActionControllers那样使用validatorResolver进行自动验证。有没有一种简单的方法可以使用theire注释验证来预验证整个模型对象?

1 个答案:

答案 0 :(得分:0)

我在谈论validatorResolver并没有完全阅读文档。解决方案可以在http://flowframework.readthedocs.io/en/stable/TheDefinitiveGuide/PartIII/Validation.html#validating-domain-models

找到

我的问题的改编例子是:

$validatorResolver = new \TYPO3\Flow\Validation\ValidatorResolver();
$modelnameValidator = $validatorResolver->getBaseValidatorConjunction('Some.Where\Domain\Model\Modelname');
$result = $commentValidator->validate($modelname);