舉個簡單的例子laravel框架中的migration功能class Blueprint中集成了一個function timestamps 可以為數(shù)據(jù)庫添加兩個字段,不過會使用數(shù)據(jù)庫格式為timestamp,想要改造一下這個function,例如我想要修改成如下:public function timestamps($precision = 0)
{ $this->integer('created_at')->nullable(); $this->integer('updated_at')->nullable(); //或集成其他字段
}我嘗試過1.在class Blueprint中直接改,但是考慮到下次的composer update 就會將這個修改覆蓋掉。2.寫一個繼承,在繼承內重構這個function,但是在執(zhí)行 make:migation時報錯3.之前看到一個方法 用trial insteadof 不過好像得是 Blueprint 同為 trail才可以想請問一下大家有什么方法可以解決!
1 回答

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 關注
- 397 瀏覽
添加回答
舉報
0/150
提交
取消