【问题标题】:Laravel Spatie/Laravel-activitylog with SentinelLaravel Spatie/Laravel-activitylog 与 Sentinel
【发布时间】:2018-07-09 02:30:03
【问题描述】:

我正在使用 Sentinel 对我的 Laravel 项目进行授权。现在我正在尝试从 Spatie 添加 Laravel-activitylog。活动日志使用默认身份验证驱动程序来记录用户活动。如何更改驱动程序以使用 Sentinel 的驱动程序。我是 Laravel 的新手,在实现这一点时遇到了麻烦。任何帮助将不胜感激。亲切的问候。

【问题讨论】:

    标签: laravel cartalyst-sentinel activitylog


    【解决方案1】:

    我在 ActivityLogger.php 的 __construct 函数中更改了变量

    $this->causedBy = \Sentinel::check();

    【讨论】:

    • ActivityLogger.php 可以在这里找到 path_to_project\vendor\spatie\laravel-activitylog\src\ActivityLogger.php 编辑 $this->causedBy 函数内的值 __construct
    【解决方案2】:

    就在配置文件里。

    'default_auth_driver' => null,
    

    只需将其设置为您正在使用的任何内容。

    https://docs.spatie.be/laravel-activitylog/v2/installation-and-setup

    【讨论】:

    • 我在配置中看到了该选项,但我不知道该放什么,尝试了 'sentinel' 但我得到 ERROR: Auth guard [Sentinel] is not defined。
    • Sentinel 可能使用sessionapi 作为它的守卫。我会假设它建立在 laravel 实现之上。
    • auth.php 中定义的身份验证保护是 web 和 api,这两个与 null 选项(在 activitylog.php 中)的工作方式相同。记录工作,但我没有得到原因模型。唯一有效的方法是通过替换 $this->causedBy = $auth->guard($this->authDriver)->user(); 来更改 ActivityLogger.php到 $this->causedBy = Sentinel::getUser();但这不是一个适当的解决方案。正如我在开篇文章中所说,我是 laravel 的新手,很难弄清楚这一点。
    • 我只是查看了存储库。您无需更改源代码。您将用户模型实例或 id 传递给->causedBy()。它在后台为您规范了这一点。 github.com/spatie/laravel-activitylog/blob/….
    • 它还声明“如果你不使用因包将自动使用登录用户。” docs.spatie.be/laravel-activitylog/v2/basic-usage/…
    猜你喜欢
    • 2019-03-30
    • 2021-03-09
    • 2018-07-04
    • 2018-05-27
    • 2023-01-21
    • 1970-01-01
    • 2017-03-11
    • 1970-01-01
    • 2020-09-15
    相关资源
    最近更新 更多