Php symfony3模型和管理表单的相同验证
我正在使用FOS用户包和。 我在模型中进行了验证,如: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中使
//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上调用的,很抱歉我没有读到那部分。谢谢,它在工作,但为什么在这里—“不应该为表单定义任何验证组”?正如副标题所说,这是为了在内联验证(如果有)时进行故障排除不起作用。