举个简单的例子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才可以想请问一下大家有什么方法可以解决!
1 回答
![?](http://img1.sycdn.imooc.com/5859e2d50001f6bb01000100-100-100.jpg)
qq_笑_17
TA贡献1818条经验 获得超7个赞
针对第二种方案,你可以在调用Schema::create()
之前,先设置好你那个自定义的Blueprint
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) { });
- 1 回答
- 0 关注
- 386 浏览
添加回答
举报
0/150
提交
取消