のJSONを取得し、私はliformまたはliform-bundleを使用して、私のコントローラで私のフォームタイプのJSONを生成しようとしているが、エラーましたよ:私にformTypeスキーマ
CRITICAL - キャッチされないPHPの例外のSymfony \コンポーネント\ Debug]を\ Exception \ UndefinedMethodException: "クラス" Symfony \ Component \ Form \ Extension \ DataCollector \ Proxy \ ResolvedTypeDataCollectorProxy "の" getBlockPrefix "という未定義のメソッドを呼び出そうとしました。
$form = $this->createForm(new FormType(), $entity, array( 'method' => 'PUT', 'csrf_protection' => false, )); $schema = json_encode($this->get('liform')->transform($form));
マイ形式:/home/admin/Documents/displayce/code/vendor/limenius/liform/src/Limenius/Liform/FormUtil.phpライン39
私のコントローラのコードでタイプコード:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('startDate', 'date', array(
'label' => 'Start Date',
'required' => false,
'widget' => 'single_text',
'format' => 'dd/MM/yyyy',
'input' => 'datetime',
))
->add('endDate', 'date', array(
'label' => 'End Date (included)',
'required' => false,
'widget' => 'single_text',
'format' => 'dd/MM/yyyy',
'input' => 'datetime',
))
->add('name', 'text', array(
'label' => 'Name',
'max_length' => 255,
))
->add('budget', 'money', array(
'label' => 'Budget (target)',
'required' => true,
'scale' => 0, // not showing decimals
))
->add('target', 'targeting', array(
'cascade_validation' => true,
));
}
とターゲティングタイプ:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('contexts', 'entity', array(
'label' => 'Context(s)',
'class' => 'AppBundle\Entity\Context',
'choice_label' => 'name',
'expanded' => false,
'multiple' => true,
'required' => false,
))
->add('contextDetails', 'entity', array(
'label' => 'Detailed Context(s)',
'class' => 'AppBundle\Entity\ContextDetail',
'choice_label' => 'name',
'group_by' => 'context.name',
'expanded' => false,
'multiple' => true,
'required' => false,
))
->add('dataVariables', 'entity', array(
'label' => 'Variable',
'class' => 'AppBundle\Entity\DataVariable',
'choice_label' => 'name',
'expanded' => false,
'multiple' => true,
'group_by' => function($dataVariable, $key, $index) {
return $dataVariable->getDataProvider()->getName();
}
))
// Include criteria
->add('region', 'choice', array(
'label' => 'Region(s)',
'choices' => RegionDepartment::$regions,
'expanded' => false,
'multiple' => true,
'required' => false,
))
->add('department', 'choice', array(
'label' => 'Department(s)',
'choices' => RegionDepartment::$departments,
'expanded' => false,
'multiple' => true,
'required' => false,
))
;
ネストしたフォームタイプを使用している可能性がありますか?
私が目標としているのはsymfony FormTypeとReact Componentを組み合わせて解決策にリダイレクトできれば嬉しいです。
"クラス" Symfony \ Component \ Form \ Form "の" getBlockPrefix "という未定義のメソッドを呼び出そうとしました。" Form.phpに関数がありません。アクセスできません。 –
私はsymfony 2.7を使用しています。それはもっと最近のバージョンで使う関数なのでしょうか、それとも古いものでしたか? –
Symfony 2.8にアップデートすることで問題は解決します。 – xabbuh