在 Laravel 中,当你使用迁移(migrations)来创建数据库表时,有时你可能希望某些字段在插入数据时如果没有提供值,则自动使用默认值。对于数值类型的字段,如整数(int
)或浮点数(float
),如果你设置默认值为 0
,但希望这个字段在插入数据时如果未提供值也能使用默认值 0
,你需要确保在迁移文件中正确设置了默认值。
在 Laravel 的迁移文件中,你可以使用 Schema
facade 来定义表结构,并通过 ->default()
方法来指定字段的默认值。
这种设置在多种场景下都很有用:
0
时。假设我们有一个 users
表,其中有一个 points
字段,我们希望它的默认值为 0
。
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateUsersTable extends Migration
{
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name');
$table->integer('points')->default(0); // 设置默认值为 0
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('users');
}
}
如果你发现即使设置了默认值 0
,在插入数据时如果没有提供 points
字段的值,它也没有自动使用默认值 0
,可能是因为以下原因:
points
字段设置 NULL
或其他值。通过以上步骤,你应该能够确保在 Laravel 迁移中设置的默认值 0
能够正确应用。
领取专属 10元无门槛券
手把手带您无忧上云