如何将模型时间戳挂钩到Laravel 4中的用户ID?

时间:2014-01-03 02:50:49

标签: php laravel laravel-4

在定义具有时间戳(created_atupdated_at)的模型时,是否有一种直接的方法可以挂钩这些更新/创建方法,以便将当前用户的ID插入到模型中。 / p>

我有两个额外的字段(created_by_user_idupdated_by_user_id)来存储数据。

2 个答案:

答案 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;
        });
    }