0

いくつかのオプション フィールド (空白のままにする) を持つフォームを作成しようとしています。これを行うには、必要な => false オプションをフォームビルダーに追加しました...

$builder->add('twitter', 'url', array('required' => 'false'));

エンティティには検証制約がありません...

/**
 * @var string
 *
 * @ORM\Column(name="twitter", type="string", length=50)
 */
private $twitter;

また、デバッグ true/false を使用して、dev、prod でキャッシュをクリアしようとしました。しかし、フォームにはロード時に必要な属性がまだあります:$

<input type="url" id="post_add_twitter" name="post_add[twitter]" required="required" />

私のセットアップはphp app/check.phpを渡します

私が間違っていることは何ですか?

編集: Symfony バージョン 2.1.7、PHP バージョン 5.4.7

4

1 に答える 1

3

「必須」属性は、文字列ではなくブール値を取ります。

$builder->add('twitter', 'url', array('required' => false));

あまり深くは見ていませんが、この属性はある時点で型キャストされていると想像できます。つまり、任意の文字列 ('' 以外) が true と評価され、フィールドが強制的に必須になります。

于 2013-01-30T00:25:10.203 に答える