2014-11-14 31 views
0

我使用FOS用戶包和LdapBundle爲我的用戶連接到網站。 我創建了一個表單,我想跟蹤誰添加了一個條目。所以我想保存到數據庫添加/修改那個東西的用戶。使用當前用戶ID - symfony 2

這樣做的最好方法是什麼?由於這將是一種形式,我的第一個想法是用當前用戶ID在我的FormType上創建一個隱藏字段,但我認爲這是安全的。

任何建議,將不勝感激。

謝謝!

回答

1

我不知道ldapBundle但是當我想保存例如照片我做我的控制器

$user=$this->security_context->getToken()->getUser(); 

    $form = $this->createForm(new PhotoType(), $photo) 
    $request = $this->get('request'); 

    if ($request->getMethod() == 'POST') { 

       $form->handleRequest($request); 

       if ($form->isValid()) { 

        $photo->setUser($user); 

        $em = $this->getDoctrine()->getManager(); 
        $em->persist($photo); 
        $em->flush(); 

      .... 


它是一種基本的代碼,您還可以檢查用戶是否存在beofre做堅持:if($user) ...

+0

感謝您的答案。我無法獲得'$ user = $ this-> security_context ...'工作,PHPStorm不斷告訴我'security_context'字段不存在它我的控制器。我必須包括什麼? – Anthony 2014-11-14 17:09:52

+1

我的不好,它的作品:)謝謝! – Anthony 2014-11-14 17:20:20

1

我會建議反對隱藏的領域,因爲它可以很容易地操縱。

更好的方法是將SecurityContext注入到表單中,並通過POST_SUBMIT事件將登錄用戶綁定到該對象。