2

Symfony 2 と FOSUserBundle を使用してアプリケーションを作成しています。自分の UserBundle が正しく構成されています。私のユーザー エンティティには、さまざまなカテゴリ (場所の設定、個人設定など) の属性が多数あるため、カテゴリごとに異なるフォームを作成して、各設定カテゴリを別のページに表示できるようにしたいと考えています。

カスタム プロファイル フォームの作成方法は知っています (FOSUserBundle ドキュメントにあります)。既に複数の FormType と追加のコントローラーを作成しましたが、現在のユーザー データを入力できません。私は次のことを試しました

$user = $this->container->get('security.context')->getToken()->getUser();
// Try 1
$form = $this->createForm(new InnerCharacteristicsType());  
// Try 2
$form = $this->createForm(new InnerCharacteristicsType($user));
// Try 3
$form = $this->createForm(new InnerCharacteristicsType(), $user);
// Try 4
$form = $this->createForm(new InnerCharacteristicsType(), array('user' => $user);

return $this->render('AcmeUserBundle:EditProfile:inner.html.twig', array('form' => $form->createView()));

(もちろん、同時に試したわけではありません)

また、InnerCharacteristics フォームを services.yml に追加して、新しいフォームをサービスにしようとしましたが、これに関するドキュメントが見つかりませんでした。FOSUserBundle 自体の profile.xml も、パラメーターが指している場所が見つからなかったため、あまり役に立ちません。また、XML から YAML への変換は、これに関するドキュメントがあまり役に立たないため、あまり簡単ではありません (これは、FOSUserBundle 構成が XML であり、私の UserBundle 構成が YAML であるため必要です)。

これは私のservices.ymlにあるものです:

acme_user.inner_characteristics_profile.form:
  class: Symfony\Component\Form\Form
  factory_service: form.factory
  factory_method: createNamed

誰かが次にどこへ行くべきかを教えてくれることを願っています.

4

1 に答える 1