我正在尝试使用Json-RPC验证参数。使用Symfony2验证,我可以这样做:
$expense = new Expense;
$expense->setAmount(1);
$validator = $this->get('validator');
$errors = $validator->validate($expense);
但我不想用setFoo()
方法手动指定每个参数。无论如何,绑定数据类似于Symfony Form
库的工作方式吗?
答案 0 :(得分:0)
如果我理解你的问题,$errors = $validator->validate($user)
将完成这项工作。请参阅using the validator service文档。
答案 1 :(得分:0)
事实证明,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对象后,可以正常验证它。