2014-11-14 5 views
0

사용자가 웹 사이트에 연결할 수 있도록 FOS 사용자 번들과 LdapBundle을 사용합니다. 양식을 만들었고 누가 항목을 추가했는지 추적하고 싶습니다. 그래서 그 것을 추가/수정 한 사용자를 데이터베이스에 저장하려고합니다.현재 사용자 아이디 사용 - 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

+1

내 잘못, 작동 :) 감사합니다! – Anthony

1

쉽게 조작 할 수 있으므로 숨겨진 필드에 대해 제안합니다.

더 좋은 방법은 SecurityContext을 양식에 삽입하고 POST_SUBMIT 이벤트를 통해 로그인 한 사용자를 해당 개체에 바인딩하는 것입니다.