Symfony2 バリデータ コンポーネントを使用して、NULL を許可するが空の文字列を許可しないように値を検証するのに問題があります。
コンポーネントを Silex アプリケーションに統合し、Property Constraint ターゲットを使用してアプリケーション エンティティ (Doctrine エンティティではない) のいくつかのプロパティを検証しました。
この静的メソッドを Entity クラスに追加して、Entity の name と service_id を検証しました。問題は、service_id
NULL が有効である必要がある場合、NotBlank
制約が開始され、違反が報告されることです。
static public function loadValidatorMetadata(ClassMetadata $metadata)
{
// name should never be NULL or a blank string
$metadata->addPropertyConstraint('name', new Assert\NotNull());
$metadata->addPropertyConstraint('name', new Assert\NotBlank());
// service_id should either be a non-blank string or NULL
$metadata->addPropertyConstraint('service_id', new Assert\NotBlank());
}
要するに、文字列または NULL を許可する方法を探していますservice_id
が、空の文字列は許可しません。
PS:制約も試しましたMinLength(1)
が、残念ながら空の文字列が許可されています。