Answers:
在Laravel 5之前,还没有使用架构生成器来更改现有表列的Laravel本机方式。您需要为此使用原始查询。
但是,从Laravel 5开始,您可以使用:
$table->...->nullable(false)->change();
$table->string('colmn', 255)->nullable()->change();
),但相反似乎并没有工作($table->string('colmn', 255)->change();
),所以你仍然需要使用原始的数据库查询本
nullable(false)
在Laravel 5.3中对我不起作用:(
从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();
});
}
public function down()
{
Schema::table('table_name', function ($table) {
$table->dropColumn('column');
});
}
您可以再次声明该列而无需-> 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();
});
}