Laravel Migration 默认值
在使用 Laravel 进行数据库迁移时,我们经常需要为表的列设置默认值。默认值是在插入新记录时,如果没有为该列提供值,则将使用的预定义值。Laravel 提供了一种简单且便捷的方式来设置默认值,即使用迁移文件来定义表结构。
创建迁移文件
首先,我们需要创建一个迁移文件来定义表结构。可以使用以下 Artisan 命令来生成一个迁移文件:
php artisan make:migration create_users_table --create=users
上述命令将创建一个名为 create_users_table 的迁移文件,并且将生成的迁移文件放在 database/migrations 目录下。--create=users 参数告诉 Laravel 我们要创建一个名为 users 的表。
定义表结构
打开生成的迁移文件,可以看到 up 方法和 down 方法。我们需要在 up 方法中定义表结构。下面是一个示例:
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
    /**
    * Run the migrations.
    *
    * @return void
    */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('name');
            $table->string('email')->unique();
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }
    /**
    * Reverse the migrations.
    *
    * @return void
    */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}
在上述示例中,我们创建了一个名为 users 的表,并定义了一些列,如 nameemailpassword 等。现在,我们将为其中的一列设置默认值。
设置默认值
要为列设置默认值,可以使用 default 方法。以下是一个示例:
$table->string('name')->default('John Doe');
在上述示例中,我们将 name 列的默认值设置为 John Doe。当插入新记录时,如果没有为 name 列提供值,将使用默认值。
除了字符串类型,Laravel 还支持设置其他类型的默认值,如整数、布尔值等。以下是一些示例:
设置整数类型的默认值:
$table->integer('age')->default(18);
设置布尔类型的默认值:
$table->boolean('is_admin')->default(false);
设置日期类型的默认值:
$table->date('birthday')->default(now());
修改默认值
如果需要修改已存在列的默认值,可以使用 change 方法。以下是一个示例:
Schema::table('users', function (Blueprint $table) {
    $table->string('name')->default('John Doe')->change();
});
在上述示例中,我们使用 change 方法来修改 drop table if exists username 列的默认值为 John Doe
移除默认值
如果需要移除列的默认值,可以使用 default 方法并传递 null 值。以下是一个示例:
$table->string('name')->default(null)->change();
在上述示例中,我们将 name 列的默认值设置为 null,即移除了默认值。
运行迁移
完成迁移文件的编写后,我们可以使用以下 Artisan 命令来运行迁移:
php artisan migrate
上述命令将执行 up 方法中定义的操作,并创建名为 users 的表,同时设置默认值。
总结
本文介绍了如何使用 Laravel Migration 来设置表列的默认值。通过创建迁移文件并在其中定义表结构,我们可以轻松地设置默认值。使用 default 方法可以为列设置默认值,使用 change 方法可以修改已存在列的默认值,使用 default(null) 可以移除列的默认值。通过运行迁移命令,我们可以将表结构和默认值应用到数据库中。
希望本文对你理解 Laravel Migration 默认值的设置有所帮助!