По крайней мере, тестирование в Laravel 5.5.44. Класс Blueprint
является Macroable.Это означает, что вы можете добавить дополнительные функции в класс.
Это означает, что вы можете сделать что-то вроде этого:
Добавьте это к методу boot()
вашего AppServiceProvider
use Illuminate\Database\Schema\Blueprint;
...
Blueprint::macro('nullableString', function(string $column, $length = null){ .
return $this->string($column, $length)->nullable();
});
Тогда вы можете использовать nullableString()
в настройках миграции следующим образом:
...
$table->nullableString('firstname'); // default nullable
$table->nullableString('lastname'); // default nullable
...
Приветствия!
PS: я бы не стал делать это автоматически во многихслучаев.Предполагается, что миграция поможет вам получить документацию поддержки изменений схемы базы данных в долгосрочной перспективе.Но если ты справишься, почему бы и нет?