[解決済み] symfony 2.8, 3.0 以降の buildForm() へのデータの渡し方
2023-05-08 09:22:46
質問
私のアプリケーションでは、現在、コンストラクタを使用してフォームタイプにデータを渡しています。
この回答
. しかし
symfony 2.8 アップグレードガイド
に型のインスタンスを渡すことを助言しています。
createForm
関数に渡すことは非推奨であることを助言します。
Form::add(), FormBuilder::add(), and the API に型インスタンスを渡すことは非推奨です。 FormFactory::create*() メソッドに型インスタンスを渡すことは非推奨で、Symfony 3.0 ではサポートされません。 メソッドは非推奨で、Symfony 3.0 ではサポートされません。の完全修飾クラス名を渡してください。 型の完全修飾クラス名を渡してください。
Before: $form = $this->createForm(new MyType()); After: $form = $this->createForm(MyType::class);
完全修飾されたクラス名でデータを渡すことができないので、代替手段はないのでしょうか?
どのように解決するのですか?
これは、私たちのフォームの一部も壊しました。私は、カスタム データをオプション リゾルバに渡すことで解決しました。
フォームのタイプで
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->traitChoices = $options['trait_choices'];
$builder
...
->add('figure_type', ChoiceType::class, [
'choices' => $this->traitChoices,
])
...
;
}
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'trait_choices' => null,
]);
}
そして、コントローラでフォームを作成する際に、コンストラクタではなくオプションとして渡します。
$form = $this->createForm(ProfileEditType::class, $profile, [
'trait_choices' => $traitChoices,
]);
関連
-
[解決済み] [Solved] Fatal error: メンバ関数bind_param()のbooleanに対する呼び出し [重複] [重複
-
[解決済み】SQLSTATE[42000]: 構文エラーまたはアクセス違反が発生しました。1064 SQL 構文にエラーがあります - PHP - PDO [重複]。
-
[解決済み】空の配列要素を削除する
-
[解決済み】PHP 7.2 - Warning: count(): パラメータは配列かCountableを実装したオブジェクトでなければならない [解決済み]
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: バインドされた変数の数が102行目のトークンの数と一致しない [終了]
-
[解決済み】「Fatal error: Class 'MySQLi' not found "を解決するには?
-
[解決済み】PHPからPythonスクリプトを実行する
-
[解決済み】mysqli_select_db()は、パラメータ1がmysqliであることを期待し、文字列が与えられる。
-
[解決済み] 警告:mysqli_fetch_array()は、パラメータ1がmysqli_resultであることを期待する、オブジェクトはで指定された。
-
[解決済み] PHP - ストリームを開くのに失敗しました : そのようなファイルまたはディレクトリがありません。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】XAMPPポート80をPID 4の「Unable to open process」が使用中 [重複] XAMPPポート80をPID 4の「Unable to open process」が使用中。]
-
[解決済み】「初期通信パケットの読み込み」でMySQLサーバーに接続できなくなり、システムエラーになる。0
-
[解決済み] SAJAXは死んだか?何を置き換えるべきか?
-
[解決済み】DateTimeクラスのオブジェクトを文字列に変換できない
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: バインドされた変数の数が102行目のトークンの数と一致しない [終了]
-
[解決済み] SQLSTATE[HY093]: 無効なパラメータ番号: パラメータが定義されていません
-
[解決済み】既に開始されているPHPセッション【重複あり
-
MacでPHPを実行した際に、メモリサイズが134217728バイトも消費される問題の解決方法について
-
[解決済み] PHP と mod_fcgid: handle_request_ipc 関数で ap_pass_brigade が失敗する。
-
[解決済み】警告: file_get_contents(): https:// ラッパーがサーバー構成ですべて無効になっています。