Laravel 5 在引导自我::创建中注入值


Laravel 5 inject values in boot self::creating

我正在尝试将一些值注入到列中,这些值将始终设置为在数据库中创建新记录时节省时间。

我试过:

public static function boot()
    {
        parent::boot();
        self::creating(function($item){
            $item->created_by = Auth::user()->id(); // Logged in user's id
        });
...

但这给了我错误:

BadMethodCallException in Builder.php line 1987:
Call to undefined method Illuminate'Database'Query'Builder::id()

我怎样才能让它工作?

你想要的要么是Auth::id(),要么是Auth::user()->id。正如错误消息所说,查询生成器上没有调用id的方法。

您还应该将self::creating更改为static::creating,以便在类扩展时更好地工作。