Symfony 检查每个参数符号

Symfony 检查每个参数符号,symfony,Symfony,我有一个创建用户的路径,我需要一些参数来获得它 例如,我的控制器如下所示: $dataJson = json_decode($request->getContent(),true); $data = new \stdClass(); $data->email = $dataJson['email']; $data->pwd = $dataJson['pwd']; $data->role = $dataJson['role']; 我需要所有的(电子邮件,pwd,角色)来创

我有一个创建用户的路径,我需要一些参数来获得它

例如,我的控制器如下所示:

$dataJson = json_decode($request->getContent(),true);
$data = new \stdClass();
$data->email = $dataJson['email'];
$data->pwd = $dataJson['pwd'];
$data->role = $dataJson['role'];
我需要所有的(电子邮件,pwd,角色)来创建我的用户。 我是否必须检查每个参数才能使我的请求无效

e、 g


当然,这不是正确的方法,但是我如何确保我的请求是有效的呢?

我将采取的方法是拥有一个值对象并为其定义验证规则

您可以手动加载对象,例如:

$data = new VO\UserChangeRequest($dataJson['email'], $dataJson['pwd'], $dataJson['role']);
然后我会检查对象是否有效:

$violations = $this->get('validator')->validate($data);
$isValid = 0 === count($violations);
验证规则将由验证程序组件从捆绑包配置中获取

下面是一篇解释Symfony2中验证的文章:


对于你的具体情况,我宁愿使用。它集成得很好,使用param converter后,您将得到自动实例化和水合的对象。刚开始安装时可能有点困难。

我见过一种用于解决类似问题的方法:谢谢,您在哪里创建
$data=new VO/UserChangeRequest($dataJson['email'],$dataJson['pwd'],$dataJson['role'])?什么是
新VO/UserChangeRequest
?所有行都将在控制器中设置
VO/UserChangeRequest
是一个必须创建的类。例如:很好,我必须创建一个类似模型的类,并验证每个字段。我现在没有模型,因为我使用MongoDb,但这不是问题。但是任何时候我必须检查所有参数,我必须创建类并使用validate?是的,这是主要思想。:)
$violations = $this->get('validator')->validate($data);
$isValid = 0 === count($violations);