我使用Symfony 2和FOSUserBundle創建了一個應用程序。我有我自己的UserBundle配置正確。我的用戶實體具有很多不同類別的屬性(例如位置設置,個人設置...),所以我想爲每個類別製作不同的表單,以便我可以在不同的頁面上顯示每個設置類別。使用FOSUserBundle創建多個配置文件表單
我知道如何製作一個自定義配置文件表單(它在FOSUserBundle文檔中),我已經制作了多個FormTypes和一個額外的控制器,但我無法用當前用戶數據填充它。我嘗試以下
$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
我希望有人可以給我一些指點下一步去哪裏。