2

configureFormFields 関数でマップされていないプロパティを定義しました

add('numberOfSubproducts', 'integer',array('mapped' => false,'required' => true, 'data'=> 1))

および検証関数の制約

assertRange(['min' => 0, 'max' => 9999])

エラーが発生します:

プロパティnumberOfSubproductsもメソッドgetNumberOfSubproducts()もメソッドもisNumberOfSubproducts()クラスに存在しないpath\to\entity

SonataAdminBundle でマップされていないプロパティの制約を正しい方法で定義する方法は?

4

3 に答える 3

1

最も簡単な方法は、ORM\Column として記述せずに、エンティティのプロパティとして定義することです。

注釈を使用すると、次のようになります。

あなたのエンティティクラス宣言で

use Symfony\Component\Validator\Constraints as Assert;

// ...

/**
 * Assert\Range(min=0, max=9999)
 */
protected $numberOfSubproducts;

// ...

public function getNumberOfSubproducts()
{
    return $this->numberOfSubproducts;
}

public function setNumberOfSubproducts($numberOfSubproducts)
{
    $this->numberOfSubproducts = $numberOfSubproducts;
    return $this;
}
于 2013-06-20T10:19:29.497 に答える
0

フォームを検証する最初の方法は、FormType http://symfony.com/doc/2.2/book/forms.html#form-validationによるものです

カスタム検証が必要な場合は、検証グループを使用することもできます (グループに適用されたもののみ) http://symfony.com/doc/2.2/book/forms.html#validation-groups

2 つ目は、createFormBuilder() を呼び出すだけでフォームを作成する方法です。そして、各フィールドにカスタム検証を入力します http://symfony.com/doc/2.2/book/forms.html#building-the-form

于 2013-06-20T11:04:29.277 に答える