在定义具有时间戳(created_at
和updated_at
)的模型时,是否有一种直接的方法可以挂钩这些更新/创建方法,以便将当前用户的ID插入到模型中。 / p>
我有两个额外的字段(created_by_user_id
和updated_by_user_id
)来存储数据。
答案 0 :(得分:3)
您可以覆盖方法save()
:
<?php
class Post extends Eloquent {
public function save()
{
if (! $this->exists)
{
$this->created_by_user_id = Auth::user()->id;
}
$this->updated_by_user_id = Auth::user()->id;
parent::save();
}
}
答案 1 :(得分:0)
我在这里找到了一个很干净的方式: http://driesvints.com/blog/using-laravel-4-model-events
在laravel中使用内置模型事件系统的代码段:
public static function boot() {
parent::boot();
static::creating(function($cluster) {
$cluster->created_by_users_id = Auth::user()->id;
$cluster->updated_by_users_id = Auth::user()->id;
});
static::updating(function($cluster) {
$cluster->updated_by_users_id = Auth::user()->id;
});
}