symfonyのようなフレームワークで作業するのは非常に新しいですが、私は非常に速くファンになっていると言わなければなりません。残念ながら、私は最後の数日間ずっと続けられています。選択されたオプションがEntityType :: classに設定されていないformfield symfony3
私はsymfony3フレームワークに私の古い学校のPHPのCMSをリファクタリングしようとしているコンテキスト
。ユーザーは、彼のページを編集することを追加することによって彼のページを管理することができます。新しいページをデータベースに追加することは、魅力のように機能します。ページの編集もうまくいきますが、1つの小さな部分は例外です。フォームは必要なようにフィールドを事前入力し、投稿はエンティティを編集します。
...何らかの理由で、選択ボックスは選択されたtemplatetypeであらかじめ選択されません。このリストはEntityType :: classを使用してビルドされ、AppBundle:Templatesを使用してデータベースから利用可能なデータを取得します。
私はロードに使用すると、フォームを構築するコードの一部:
// Fetch selected page
$page = $this->getDoctrine()->getRepository('AppBundle:PageMan')->find($id);
// Generate form
$form = $this->createFormBuilder($page)
->add('templateId', EntityType::class, array(
'label' => 'Template type',
'class' => 'AppBundle:Templates',
'placeholder' => 'Kies een template',
'choice_label' => 'name',
'choice_value' => 'id',
'multiple' => false,
'expanded' => false,
'required' => true,
))->getForm();
私は考えるとGoogleの可能性があり、すべての可能性を試してみましたが、最後の数日間。
- れるtemplateIdリポジトリをロードした後の値で満たされている:私はまた、次のようにチェックしました。フィールドをプレーンテキストフィールドに変更すると、値が表示されます。
- AppBundle:casheはdoesnの取り外し転記(離れるリダイレクトしない)場合に選択=「選択」属性が設定されている
- (ID 1および2を使用してデータベースに2つだけのエンティティの)一意の値を返しテンプレート
彼の瞬間私は可能な解決策から外れています、誰かが助けることを願っています。それはとてもシンプルなものかもしれませんが、私はもうそれを見ていません。
--Update--
だけで生成されたフォームのvardumpで、次の矛盾を発見しました。 'name'オブジェクトには、modelData、normData、およびviewDataが事前に入力されています。しかし、 'templateId'はviewDataの内容を失います。 symfonyののドキュメントで
screenshot vardump formbuilder
それはfolowingを述べた:
View Data - This is the format that's used to fill in the form fields themselves. It's also the format in which the user will submit the data. When you call Form::submit($data), the $data is in the "view" data format. Source
これは解決策に可能LEEDである可能性があります。 \ベンダーで
--update 2--
ただ、ハードコードされます$ this-> ViewDataを\ symfonyの\ symfonyの\ SRC \ symfonyの\コンポーネント\フォーム\ Form.php選択ボックスに存在しているハードコードされた値に。これにより、上のアップデートで説明した空の設定に値が追加されます。これでデフォルト値が選択されます。コードでこの変数に従います。それがなぜあらかじめ満たされているのかという理由を見つけることを願っています。あなたが機能を行うことができますので、実際に
は 'templateId'はあなたPageManエンティティに存在していますか? –
@AlvinBunk、あなたの迅速な対応に感謝します。はい、そうです。 6 -name: "のNieuweナーム" -templateId: "2" -url: "nieuwe_url" -title: "plaatjes" ここでiはpageload 'PageMan {#379▼ -idに印刷vardumpであります -inMenu:真 -active:真 -sitemap:真 -metaDescr: "fdgfdgfdg" -metaKeywords: "FDGF" は} '私は、文字列としてそれを試してみましたが、 – MadHouse
をint型てきた私は思ったんだけど「'場合choice_value '=> $ page-> getId()、 'はエラーを取り除くでしょうか?私に教えてください、それが動作する場合、私は答えとして投稿します。 –