【发布时间】:2014-10-27 13:02:18
【问题描述】:
我有一个与这篇文章类似的问题: Laravel - last login date and time timestamp
简而言之,我的目的和问题是:
- 我的数据库中有一个“logrecords”表。
- 我在 global.php 中的事件侦听器正在处理默认的“users”表。
- 我希望我的事件监听器能够在我的“logrecords”表中插入数据。
我该怎么做:
- 我是否应该使用 eloquent 配置我的数据库表?
- 或者我应该更改 global.php 中的某些内容吗?
感谢您的支持。
--------更新--------
我意识到在我的 auth.php 文件中,默认身份验证模型已设置为:
'model' => 'User'
但我想收听和使用 User 和 Logrecord 模型。所以当我尝试在我的 global.php 中收听事件时> 文件,laravel 会自动尝试使用用户模型。所以我不得不像这样配置我的事件监听器:
我的 global.php 文件的一部分:
//First Example
Event::listen('auth.login', function($user)
{
$userLogRecord = Logrecord::firstOrCreate(array('user_id' => $user->id));
$userLogRecord->user_id = $user->id;
$userLogRecord->login_last_at = date('Y-m-d H:i:s');
$userLogRecord->save();
});
//Second Example
Event::listen('auth.logout', function($user)
{
$userLogRecord = Logrecord::firstOrCreate(array('user_id' => $user->id));
$userLogRecord->user_id = $user->id;
$userLogRecord->logout_last_at = date('Y-m-d H:i:s');
$userLogRecord->save();
});
目前它正在工作,但我认为这样编辑我的听众不是一个好主意。 我的目的是倾听用户和日志记录模型并进行一些处理。它现在符合我的目的,但我觉得我必须改进。
有什么想法吗?
【问题讨论】:
标签: laravel eloquent event-listener