Laravel 在 Db 中创建的迁移布尔字段,如小整数
Laravel migration boolean field created in Db like tiny integer
我在 Laravel 中写了一个迁移:
Schema::create('test', function (Blueprint $table) {
//
$table->increments('id');
$table->string('city','30')->unique();
$table->string('car','30')->unique();
$table->boolean('required');
$table->string('street','100')->nullable();
$table->json('files');
$table->timestamp('created_at');
});
所需的字段被定义为布尔值,但在数据库中 (MySql) 被创建为 tinyint。怎么可能?
Tinyint 与 boolean
相同。 Tinyint
是一个大小等于 1 个八位字节的整数。当创建列集为 boolean
时,数据库将其创建为大小为 1 bit
的 tinyint。因此使它成为可能的值 0
和 1
这是一个 boolean
.
来自 MySQL 文档
BOOL, BOOLEAN
这些类型是 TINYINT(1)
的同义词。 zero
的值被视为 false
。非零值被视为 true
我在 Laravel 中写了一个迁移:
Schema::create('test', function (Blueprint $table) {
//
$table->increments('id');
$table->string('city','30')->unique();
$table->string('car','30')->unique();
$table->boolean('required');
$table->string('street','100')->nullable();
$table->json('files');
$table->timestamp('created_at');
});
所需的字段被定义为布尔值,但在数据库中 (MySql) 被创建为 tinyint。怎么可能?
Tinyint 与 boolean
相同。 Tinyint
是一个大小等于 1 个八位字节的整数。当创建列集为 boolean
时,数据库将其创建为大小为 1 bit
的 tinyint。因此使它成为可能的值 0
和 1
这是一个 boolean
.
来自 MySQL 文档
BOOL, BOOLEAN
这些类型是 TINYINT(1)
的同义词。 zero
的值被视为 false
。非零值被视为 true