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。因此使它成为可能的值 01 这是一个 boolean.


来自 MySQL 文档

BOOL, BOOLEAN

这些类型是 TINYINT(1) 的同义词。 zero 的值被视为 false。非零值被视为 true

Numeric Type Overview