我在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');
});
所需的字段定义为boolean,但在db(MySql)中创建为tinyint。怎么可能?
答案 0 :(得分:2)
Tinyint与boolean
相同。 Tinyint
是一个大小等于1个八位字节的整数。创建列设置为boolean
时,db会将其创建为大小为1 bit
的tinyint。因此,使0
和1
成为boolean
的可能值。
来自MySQL文档
BOOL, BOOLEAN
这些类型是TINYINT(1)
的同义词。值zero
被视为false
。非零值被视为true