symfony3 对模型和管理表单的相同验证
symfony3 same validation for model and admin form
我正在使用 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();
}
您可以使用自定义验证组来执行此操作。
第一组是验证约束。
根据您提供的示例
//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;
接下来在您的管理 class 中定义一个受保护的 $formOptions 属性,像这样
//src\AppBundle\Admin\UserAdmin.php
//class UserAdmin extends AbstractAdmin
protected $formOptions = array(
'validation_groups' => 'reg'
);
我正在使用 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();
}
您可以使用自定义验证组来执行此操作。
第一组是验证约束。
根据您提供的示例
//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;
接下来在您的管理 class 中定义一个受保护的 $formOptions 属性,像这样
//src\AppBundle\Admin\UserAdmin.php
//class UserAdmin extends AbstractAdmin
protected $formOptions = array(
'validation_groups' => 'reg'
);