Migration 为什么没有创建者编号、更新者编号等方法呢
我们在使用 Migration 创建表结构时,使用了 Illuminate\Database\Schema\Blueprint 类对表字段进行操作,这个类中包含了基本的数据类型和一些通用的方法,例如 $table->timestamps() 方法会创建 created_at 和 updated_at 两个字段,以及 $table->softDeletes() 方法会默认创建 deleted_at 字段。
目前在我开发的所有系统中,基本都使用上面的2个方法,同时每个表都会增加 3 个字段,分别是 created_user_id 、 updated_user_id 和 deleted_user_id,用于记录操作者编号。为什么作者不直接在Illuminate\Database\Schema\Blueprint 类中集成了呢?大家都不需要吗?
关于 LearnKu
是不需要,本质上记录谁改的话,通过git就能查看了。
亲,可以用
Macroable,给Blueprint加上一个相应的方法,来同时创建 这 6 个字段哦直接写字段不好吗?还创建一个方法
我会更倾向于实现「操作日志」的功能来记录每个后台用户的操作,毕竟诸如
updated_user_id这类,不但可能被后来者的操作覆盖,而且也看不出具体更新了什么楼上 @largezhou 提出的解决方案的具体实现:https://wi1dcard.cn/posts/laravel-blueprin...
@Wi1dcard
Hi 认真看了下您博客的文章,感谢分享。
我本地的 Laravel 版本是5.8,使用方式和文章的略有不同。也许是版本不同导致的不兼容吧。
还是有更好的使用方法呢?还请多多指教。
@24K大白羊
这样不就可以了吗,也不需要传
$table实例进去,这个回调,会自动绑定$this到Blueprint实例