Validation 验证POPO';s与Symfony2

Validation 验证POPO';s与Symfony2,validation,symfony,Validation,Symfony,我正在尝试使用Json RPC验证参数。通过Symfony2验证,我可以做到: $expense = new Expense; $expense->setAmount(1); $validator = $this->get('validator'); $errors = $validator->validate($expense); 但是我不想用setFoo()方法手动指定每个参数。是否有类似于Symfony表单库工作方式的数据绑定方法?如果我理解您的问题,$errors=$

我正在尝试使用Json RPC验证参数。通过Symfony2验证,我可以做到:

$expense = new Expense;
$expense->setAmount(1);
$validator = $this->get('validator');
$errors = $validator->validate($expense);

但是我不想用
setFoo()
方法手动指定每个参数。是否有类似于Symfony
表单
库工作方式的数据绑定方法?

如果我理解您的问题,
$errors=$validator->validate($user)
将完成这项工作。请参阅文档。

事实证明,这在Symfony2中是不可能的。您必须自己绑定数据。我创建了一个与此类似的绑定方法:

$params = array('amount' => 1);

foreach($params as $key => $value) {
    try {
        $path = new PropertyPath($key);
        $path->setValue($obj, $value);
    } catch (\Exception $e) {
        // parameter does not exist in POPO
    }
}
将参数绑定到POPO对象后,可以正常验证它