Php symfony3模型和管理表单的相同验证

Php symfony3模型和管理表单的相同验证,php,symfony,validation,fosuserbundle,sonata-admin,Php,Symfony,Validation,Fosuserbundle,Sonata Admin,我正在使用FOS用户包和。 我在模型中进行了验证,如: //src\AppBundle\Entity\User.php //class User extends BaseUser /** * @var string * @Assert\NotBlank( * message = "xxx" * ) * @ORM\Column(name="address", type="text") */ private $address; 我想在我的AdminController中使

我正在使用FOS用户包和。 我在模型中进行了验证,如:

 //src\AppBundle\Entity\User.php
 //class User extends BaseUser
 /**
 * @var string
 * @Assert\NotBlank(
 *     message = "xxx"
 * )
 * @ORM\Column(name="address", type="text")
 */
private $address;
我想在我的AdminController中使用相同的验证-是否有任何方法可以继承模型的验证?现在我必须这样做:

//src\AppBundle\Admin\UserAdmin.php
//class UserAdmin extends AbstractAdmin
public function validate(ErrorElement $errorElement, $object)
{
    $errorElement
        ->with('address')
        ->assertNotBlank()
        ->end();
}

可以使用自定义验证组执行此操作

第一组是验证约束

根据您提供的示例

 //src\AppBundle\Entity\User.php
 //class User extends BaseUser
 /**
 * @var string
 * @Assert\NotBlank(
 *     message = "xxx",
 *     groups={"reg"}
 * )
 * @ORM\Column(name="address", type="text")
 */
private $address;
接下来,在admin类中定义一个受保护的$formOptions属性,如下所示

//src\AppBundle\Admin\UserAdmin.php
//class UserAdmin extends AbstractAdmin
    protected $formOptions = array(
    'validation_groups' => 'reg'
    );

您能描述一下您使用的是哪个
AdminBundle
吗?抱歉,更新的问题不了解您的验证功能-您不能在您的实体上调用Symfony验证程序,并将其终止吗?@JasonRoman您的意思是什么?我以为validate()是在实体上自动调用的,但事实并非如此。哦,可能是在SonatAdminBundle上调用的,很抱歉我没有读到那部分。谢谢,它在工作,但为什么在这里—“不应该为表单定义任何验证组”?正如副标题所说,这是为了在内联验证(如果有)时进行故障排除不起作用。