检查每个参数Symfony

时间:2015-12-30 18:34:33

标签: symfony

我有一条创建用户的路线,我需要一些参数才能得到这个。

例如我的控制器是这样的:

$dataJson = json_decode($request->getContent(),true);
$data = new \stdClass();
$data->email = $dataJson['email'];
$data->pwd = $dataJson['pwd'];
$data->role = $dataJson['role'];

我需要所有(电子邮件,密码,角色)来创建我的用户。 我是否必须检查每个参数以使我的请求无效?

e.g。

$dataJson['email'] == null ? 'error' : $dataJson['email']
$dataJson['pwd'] == null ? 'error' : $dataJson['pwd']
$dataJson['role'] == null ? 'error' : $dataJson['role']

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

1 个答案:

答案 0 :(得分:0)

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

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

$data = new VO\UserChangeRequest($dataJson['email'], $dataJson['pwd'], $dataJson['role']);

然后我会检查对象是否有效:

$violations = $this->get('validator')->validate($data);
$isValid = 0 === count($violations);

验证规则将由捆绑配置中的验证程序组件获取。

这是一篇解释Symfony2验证的文章:

P.S对于您的具体情况,我宁愿使用JMSSerializerBundle。它很好地集成并且在使用param转换器时,您将最终自动实例化并为您提供水合物。首先设置可能有点挑战。