我现在正在编写迁移以在表中创建某些列nullable
。对于向下功能,我当然想not nullable
再次制作这些列。我查看了架构生成器文档,但看不到这样做的方法。
任何帮助,将不胜感激。
我现在正在编写迁移以在表中创建某些列nullable
。对于向下功能,我当然想not nullable
再次制作这些列。我查看了架构生成器文档,但看不到这样做的方法。
任何帮助,将不胜感激。
在 Laravel 5 之前,没有 Laravel 原生的方式来使用模式构建器更改现有的表列。您需要为此使用原始查询。
但是,从 Laravel 5 开始,您可以使用:
$table->string('foo')->nullable(false)->change();
在运行上述命令之前,您必须具有 dbal 依赖项:
composer require doctrine/dbal
从 Laravel 5 开始,可以通过将 false 作为参数传递给nullable
.
$table->string('foo')->nullable(false)->change();
首先运行这个:
composer require doctrine/dbal
然后创建一个迁移,它将像这样改变表:
php artisan make:migration fix_whatever_table_name_here
public function up()
{
Schema::table('table_name', function (Blueprint $table) {
$table->type('column')->nullable(false)->change();
});
}
# Optional:
# public function down()
# {
# Schema::table('table_name', function ($table) {
# $table->type('column')->nullable()->change();
# });
# }
您可以在没有 ->nullable() 的情况下再次声明该列并使用 ->change
public function up()
{
Schema::table('table_name', function (Blueprint $table) {
$table->type('column')->change();
});
}
public function down()
{
Schema::table('table_name', function ($table) {
$table->type('column')->nullable()->change();
});
}
在 laravel 8 中,您只需输入:“->nullable()”
$table->string('name')->nullable();