举个简单的例子laravel框架中的migration功能class Blueprint中集成了一个function timestamps 可以为数据库添加两个字段,不过会使用数据库格式为timestamp,想要改造一下这个function,例如我想要修改成如下:public function timestamps($precision = 0)
{ $this->integer('created_at')->nullable(); $this->integer('updated_at')->nullable(); //或集成其他字段
}我尝试过1.在class Blueprint中直接改,但是考虑到下次的composer update 就会将这个修改覆盖掉。2.写一个继承,在继承内重构这个function,但是在执行 make:migation时报错3.之前看到一个方法 用trial insteadof 不过好像得是 Blueprint 同为 trail才可以想请问一下大家有什么方法可以解决!
2 回答
狐的传说
TA贡献1804条经验 获得超3个赞
Schema::blueprintResolver(function($table, $callback, $prefix) { return new EnhancedBlueprint($table, $callback, $prefix); }); Schema::create('xxx', function(Blueprint $table) { //这里的Blueprint实例实际上就是EnhancedBlueprint}); ---------- 修改后 $schema = Schema::getFacadeRoot(); $schema->blueprintResolver(function($table, $callback, $prefix) { return new EnhancedBlueprint($table, $callback, $prefix); }); $schema->create('xxx', function(Blueprint $table) { });
- 2 回答
- 0 关注
- 872 浏览
添加回答
举报
0/150
提交
取消