簡體   English   中英

symfony3對模型和管理表單的相同驗證

[英]symfony3 same validation for model and admin form

我正在使用FOS用戶捆綁包和Sonata管理員捆綁包 我在模型中驗證:

 //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;

接下來,在您的管理類中定義一個受保護的$ formOptions屬性,如下所示

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM