2012-08-06 124 views
2

我是Symfony和PHP(以前使用C++,Java)的新手,我无法找到任何有关如何将用户登录和注销操作记录到数据库的解决方案。我希望这些具体信息:Symfony2:登录用户活动

  • 用户谁了行动(通过用户id),
  • 动作描写(登录或注销),
  • 当前时间戳。

我正在寻找最简单的解决方案。我设法通过修改函数呈现用户登录表单来成功登录用户登录信息,但是在注销时我失败了。毕竟,我知道这是一个糟糕的主意,但我无法想出更好的主意。有什么建议么?提前致谢。

回答

1

如果你看看here,它说你可以定义一个成功处理程序和一个失败处理程序,用于将东西记录到数据库中。您还可以找到在reference documentation中定义的处理程序参数。

登录

你会首先创建该得到的了security.context和EntityManager的作为参数,并同时使用,以确定哪些用户登录的服务。该服务,然后加入到success_handler参数,并为此呼吁后在用户登录。

注销

这一个是更靠谱我想,我会假设security.context没有关于用户的信息了,你ç annot使用它来确定哪个用户正在注销。你可能想看看handlers参数实际上是什么。它可能是一个处理注销时调用的处理程序,因此您可以使用它。当然,你可能会记录一些注销失败,因为没有成功处理程序,你不能确定注销是成功的。另一方面,也许你可以从某个地方获得会话ID(也许,security.context),然后记录下来。