FOSUserbundle从其他控制器访问用户

时间:2014-07-04 22:40:18

标签: symfony fosuserbundle

我正在使用FOSUserbunble,如何从另一个Bunble中的另一个控制器/表单访问用户对象? 例如,我有一个BlogBu​​ndle,当我创建一个新帖子时,我需要在post表中保存userId。 对于我正在使用buildForm扩展AbstractType的表单。

感谢

2 个答案:

答案 0 :(得分:2)

尝试$user = $this->getUser();

答案 1 :(得分:0)

您可以通过SecurityContext进行此操作   让我们举个例子..

  namespace YourPackage\UserBundle\Controller;

  use Symfony\Bundle\FrameworkBundle\Controller\Controller;
  use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  use FOS\UserBundle\Model\UserInterface;

 class YourController extends Controller{
 /**
 * Fetch a user object.
 *
 * @Route("/yourRoute", name="your_route")
 * @Method()
 * @Template()
 */
public function yourAction(Request $request)
{
    $user = $this->container->get('security.context')->getToken()->getUser();


    return $this->redirect($this->generateUrl('your_route'));
}}