我有一个类似于这篇文章的问题:Laravel-最后登录日期和时间戳
简而言之,我的目的和问题是:
- 我的数据库中有一个"logrecords"表
- 我在global.php中的事件侦听器只是在默认的"users"表上工作
- 我希望我的事件侦听器能够在我的"日志记录"表中插入数据
我该怎么做:
- 我应该使用雄辩来配置我的数据库表吗
- 或者我应该更改global.php中的某些内容吗
感谢您的支持。
--------------------更新--------------------
我意识到,在我的auth.php文件中,默认的身份验证模型被设置为:
'model' => 'User'
但我想倾听并使用User和Logrecord模型。因此,当我尝试在global.php文件中侦听事件时,laravel会自动尝试使用User模型。因此,我不得不这样配置我的事件侦听器:
我的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();
});
它目前正在发挥作用,但我认为这样编辑我的听众不是一个好主意我的目的是对User和Logrecord模型进行监听和处理这符合我现在的目标,但我觉得我必须提高。
有什么想法吗?
@DemonDrake,
如果我理解正确,您只是想将数据添加到"日志"表中?在最简单的形式中,答案是"是的,你会用雄辩的ORM来表示
class Log extends Eloquent {
protected $table = 'log';
}
甚至可能是查询生成器。有很多方法可以做到这一点。我个人建议你退房https://laracasts.com/lessons