1

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

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

但我不想用setFoo()方法手动指定每个参数。无论如何绑定数据类似于 SymfonyForm库的工作方式吗?

4

2 回答 2

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 对象后,即可正常验证。

于 2012-12-05T10:59:44.037 回答
0

如果我理解你的问题,我$errors = $validator->validate($user)会做这项工作。请参阅使用验证器服务文档。

于 2012-12-03T11:40:45.683 回答