我正在使用FOS用户捆绑包和Sonata Admin Bundle。 我在模型中验证了:
//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();
}
答案 0 :(得分:2)
您可以使用自定义验证组执行此操作。
首先对验证约束进行分组。
从您提供的示例
//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;
接下来在您的管理类中定义受保护的$ formOptions属性,如此
//src\AppBundle\Admin\UserAdmin.php
//class UserAdmin extends AbstractAdmin
protected $formOptions = array(
'validation_groups' => 'reg'
);