エンティティが作成、更新、または削除されたときに、エンティティの原則を別の方法で検証したいと思います。
エンティティクラスにエンティティ制約検証ツールがあります。
// src/AppBundle/Entity/AcmeEntity.php
use AppBundle\Validator\Constraints as AcmeAssert;
/**
* @AcmeAssert\CustomConstraint
*/
class AcmeEntity
{
// ...
protected $name;
// ...
}
CustomConstraintで、特定のバリデーターを実行するためにエンティティを更新、作成、または削除するかどうかを決定したいと思います。
作業単位を使用することは解決策ですか?
これを作るための最良の方法は何ですか?
この問題は多くのアプリケーションで一般的だと思いますか?
皆さんありがとう ;)
送信されたデータに基づいて検証グループを使用するか、検証グループを渡してフォームを作成するときにそれを処理することができます。たとえば、フォームを作成するときのコントローラーで。
$form = $this->createForm(new AcmeType(), $acme, ['validation_groups' => ['create']]);
次に、エンティティは次のようになります。
/**
* Get name
*
* @Assert\Length(min=2, max=11, groups={"create", "update"})
* @AcmeAssert\ContainsAlphanumeric(groups={"create"}) // only applied when create group is passed
* @return string
*/
public function getName()
{
return $this->name;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加