在 Laravel 5.1 中以干净的方式将用户 ID 附加到 save/update/create

Attach user ID to save/update/create in a clean way in Laravel 5.1

所以我有很多控制器将由一个用户创建。因此,在每个 save/create/update 上,我希望将用户 ID 保存在数据库中资源的 user_id 列中。

我知道在实际更新数据库之前我可以这样

$resource->user_id = Auth::user()->id;

但这看起来很不干净,我不想对分布在多个控制器上的所有 create/update 操作执行此操作。

解决此问题的最佳和最简洁的方法是什么?

如果您使用 Eloquent ORM 来定义 $resource,您可以为该模型定义事件,它将在每次创建、更新、保存、删除或恢复操作之后或之前执行(如果您愿意)在那个模型上。您可以在此处查看文档:Laravel 5.1 Model Events Documentation

创建一个与模型的保存事件挂钩的特征,并在那里设置用户 ID。