フォーム配列にオブジェクトを追加する最良の方法は何ですか? [閉まっている

drupal.stackexchange https://drupal.stackexchange.com/questions/301

  •  16-10-2019
  •  | 
  •  

質問

form_alterフックがオブジェクトのフォームを尋問し、それに応じて行動できるように、フォームアレイにオブジェクトを追加する最良の方法は何ですか。

たとえば、「新しい」プロパティが追加されている可能性のあるフォームに渡すオブジェクトがあります。その後、別のモジュールのhook_form_alterを使用して、新しいプロパティに基づいてフォームアイテムを追加/変更したいと思います。

このシナリオで提出後にアイテムを利用できる必要はないので、使用のオーバーヘッドを避けたいと思いました #type = 'value' フォームアイテムとしてオブジェクトを追加します。

役に立ちましたか?

解決

オブジェクト全体を値として追加する必要はありません $form 配列:該当するプロパティを追加するだけです。だから次のようなものを追加します:

$form['#mymodule_new'] = $object->new;

そして、照会します $form['#mymodule_new'] あなたの中で hook_form_alter() 実装。

追加のオーバーヘッドについて心配する必要はありません。フォーム値は設計上一時的です。送信ハンドラー中に価値について何もしないと、とにかく失われます。

ライセンス: CC-BY-SA帰属
所属していません drupal.stackexchange
scroll top