4

プロジェクトに Symfony 2.1 を使用しています。管理用に SonataAdminBundle を使用しています。管理クラスのスラッグ プロパティにアサートを追加したいのですが、どうすればよいですか?

私のエンティティではアサーションを設定しましたが、ここでは機能しないようです:(

関連コード: エンティティ:

/*
 * @ORM\Table(name="default_doctor_specialty")
 * @UniqueEntity("uniqueSlugName")
 * @ORM\Entity
 */
class Test {
 //..
    /**
 * @var string
 * @Gedmo\Slug(fields={"name"},unique=false)
 * 
 * @ORM\Column(name="unique_slug_name", type="string", length=255, nullable=false , unique=true)
 */
private $uniqueSlugName;
}

管理者クラス:

class TestAdmin extends Admin {

protected $formOptions = array(
    'validation_groups' => 'Default'
);
 //...
  }

デフォルトの検証が機能しないのはなぜですか???

&このように機能しない場合でも、管理クラス内で一意の検証を設定するにはどうすればよいですか???

あなたの答えをありがとう:)

4

3 に答える 3

4

最後に、エンティティの検証グループを定義しました:

use Symfony\Bridge\Doctrine\Validator\Constraints as DoctrineAssert;
/*
 * @ORM\Table(name="default_doctor_specialty")
* @DoctrineAssert\UniqueEntity(fields="uniqueSlugName", message="A Speciality with same slug already exists", groups={"test"})
* @ORM\Entity
*/
class Test {
//..
/**
* @var string
* @Gedmo\Slug(fields={"name"},unique=false)
* 
* @ORM\Column(name="unique_slug_name", type="string", length=255, nullable=false , unique=true)
*/
private $uniqueSlugName;
}

管理者クラスでは、デフォルトの代わりにテスト検証グループを使用しました!

AHWEBDEVgithub に感謝します。

于 2013-03-02T09:21:46.253 に答える