応答の一部として「フォーム」という配列を返す API を使用しています。これは、フィールド名、データ型、および値の配列です。
これらのフィールドの数と名前は、現在使用されている API エンドポイントによって異なります。しかし、フォーム配列の構造は常に同じです。したがって、Symfony に関する限り、プロセスは次のようになります。
- フォーム オブジェクトを作成する
- フォーム配列をループし、配列要素をフィールドとして追加します
- 配列をビューに送信します
基本的に、このフォームは高度な検索フォームにすぎません。システム内のエンティティへのリンクはまったくありません。
したがって、Symfony2 の初心者であり、このドキュメント (http://symfony.com/doc/2.0/book/forms.html#building-the-form) を読んだ後、次の関数を作成してコントローラーでこれを実行しようとしました:
/**
* Generate a form for each field passed in an array.
*
* @param array $formArray A custom array of fields do be shown in the form
* @return formView
*/
private function generateForm($formArray)
{
// Simple demo for testing
$formArray = array(
0 => array(
'name' => 'FirstName', 'type' =>'text'
),
1 => array(
'name' => 'LastName', 'type' =>'text'
)
);
$form = $this->createFormBuilder($formArray);
foreach($formArray as $field) {
$form->add($field['name'], $field['type']);
}
$form->getForm();
return $form->createView();
}
そこから得たものは
Fatal error: Call to undefined method Symfony\Component\Form\FormBuilder::createView() in .... (my controller file)
奇妙なことに、フィールドを追加し、getForm() がドキュメントの例に従ってチェーンを呼び出すと、問題ありません。
ここで何が間違っていますか?