【问题标题】:How to keep logs of your users in Laravel 4?如何在 Laravel 4 中保存用户日志?
【发布时间】:2015-02-04 00:12:55
【问题描述】:

我的数据库中有users 表,布局如下:

  • 身份证
  • 用户名
  • 名字
  • 姓氏
  • 电子邮件
  • 照片

到目前为止,由于我是Admin 用户,所以我拥有Admin right,我可以创建、更新和删除。 我想让我的所有用户以后都拥有与我相同的权利。 在我发布这个功能之前,我想跟踪谁编辑了什么——这样事情就不会丢失,而且最好保留事情的历史。

此功能的最佳做法是什么? 我知道我在控制器函数的更新函数中做了一些编程逻辑。 我知道我必须在我的数据库上创建一个logs 表来存储

  • user_id :谁进行了更改
  • created_at : 更改时间
  • 旧数据:字符串
  • new_data:字符串

对于对此功能有任何经验的人,您能给我一些建议吗? 我真的很感谢你的关心。谢谢。

【问题讨论】:

    标签: php logging laravel laravel-4


    【解决方案1】:

    我认为解决此问题的最佳方法是用户执行的每个要记录的操作也应该触发一个事件。

    Event::fire('some.event', array(Auth::user()));
    

    然后您可以为每个事件注册侦听器并适当记录。

    Event::listen('some.event', function($user)
    {
        // create new item in logs table here.
    });
    

    【讨论】:

    • 这些代码应该转到哪个函数/文件?如果你不介意再澄清一点..
    • 这确实是一个很好的方法。您可以在 Laravel 文档中阅读有关事件侦听器的更多信息。 laravel.com/docs/4.2/events
    • 我会试试的。谢谢你们。
    • 我在工作中输入了我的回复,但从未发送过。正如 Colin Schoen 所说,文档是一个很好的起点。基本上,您可以将 fire 方法放在您希望记录的任何地方,并向其发送您希望记录的变量数组。侦听器可以转到您的应用程序中正在自动加载的任何位置。 app/start/global.php 通常是一种快速而肮脏的方式,最好是服务提供商。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-03
    • 1970-01-01
    • 2013-06-03
    • 2016-05-11
    • 2016-11-06
    相关资源
    最近更新 更多