【发布时间】:2015-11-18 12:53:27
【问题描述】:
仅使用 Symfony 验证器(无表单!),我试图弄清楚如何验证多个实体或(子/相关)实体并在一个数组/对象中返回错误。
例如:
假设我有 2 个不同的用户实体要使用相同的验证组进行验证。
使用validator api docs 我可以这样做:
$user1 = ... //first user
$user2 = ... //second user
$errors = [];
$error = $validator->validate($user1, null, ['create']);
if(count($error) > 0)
{
$errors['user1'] = $error;
}
$error = $validator->validate($user2, null, ['create']);
if(count($error) > 0)
{
$errors['user2'] = $error;
}
if(count($errors) > 0 )
{
// handle errors
}
这可行,但是我想知道是否有这样做的方法? 就像将现有错误传递给验证器,或者将实体数组传递给验证器。
当我想验证一个实体及其关系时,也会出现同样的问题。
例如:
假设我有一个与用户实体具有一对多关系的公司实体。
在创建新公司时,我还创建了一个新用户。
$company = new Company();
$company->set...
$user = new User();
$user->set...
$company->addUser($user);
$validator->validate ...
我想再次验证这家公司和用户。我可以以与前面所述类似的方式进行操作。但是,问题又来了,是否有一种构建方式来传递现有错误或让验证器验证相关实体(也许与验证组?)
谷歌搜索这个问题几乎没有任何像样的结果,所以我希望有人能指出我正确的方向。
或者我应该自己实现这样的逻辑(这不是问题),我只是想防止在已经存在的情况下重写这样的逻辑。
提前致谢!
【问题讨论】:
-
您可以尝试为您的案例添加验证组。来自多个实体的字段可以属于一个验证组,您验证“母”实体
-
好吧,虽然我应该是可能的,但是多个(不相关的)实体呢?
-
关系的真棒,现在我只需要找到是否需要实现自定义逻辑来验证实体数组(示例 1)
标签: validation symfony doctrine entity