追加のフォームクラスを使用しようとしています&編集。追加モードでは、iconFile
が必要です。編集モードでは、iconFile
はオプションです(現在のアイコンを置き換えるため)。どのように私はこれを達成することができますか?Symfony 2フォーム検証グループ
私は
class ItemForm extends AbstractType {
public function __construct($mode) {
$this->mode = $mode;
}
public function getDefaultOptions(array $opts) {
if ($mode == 'add') {
return array('validation_groups' => array('Default', 'add'));
} else {
return array('validation_groups' => array('Default'));
}
}
}
// doctrine entity, data_class of form
class Item {
/**
* @Assert\NotBlank(groups={"add"})
* @Assert\Image
*/
protected $iconFile;
}
// creating the form in controller
$form = $this->createForm(new ItemForm($mode));
問題も編集モードであるコンストラクタでモードを設定しようとした、私はまだ画像を選択する必要があります。 HTML5の検証では、$this->mode
から$mode
を設定しているが、あなたはその後、getDefaultOptions()
から$mode
にアクセスしようとしている、あなたのItemForm
コンストラクタで