Laravel 8 可用的字段类型
数据库结构生成器包含构建表时可以指定的各种字段类型:
命令 | 说明 |
---|---|
$table->id(); |
$table->bigIncrements('id') 的别名 |
$table->foreignId('user_id'); |
$table->unsignedBigInteger('user_id') 的别名 |
$table->bigIncrements('id'); |
递增 ID(主键),相当于「UNSIGNED BIG INTEGER」 |
$table->bigInteger('votes'); |
相当于 BIGINT |
$table->binary('data'); |
相当于 BLOB |
$table->boolean('confirmed'); |
相当于 BOOLEAN |
$table->char('name', 100); |
相当于带有长度的 CHAR |
$table->date('created_at'); |
相当于 DATE |
$table->dateTime('created_at', 0); |
相当于 DATETIME ,可以指定位数 |
$table->dateTimeTz('created_at', 0); |
相当于 DATETIME (带时区) ,可以指定位数 |
$table->decimal('amount', 8, 2); |
相当于 DECIMAL,可以指定总位数和小数位数 |
$table->double('amount', 8, 2); |
相当于 DOUBLE,可以指定总位数和小数位数 |
$table->enum('level', ['easy', 'hard']); |
相当于 ENUM |
$table->float('amount', 8, 2); |
相当于 FLOAT,可以指定总位数和小数位数 |
$table->geometry('positions'); |
相当于 GEOMETRY |
$table->geometryCollection('positions'); |
相当于 GEOMETRYCOLLECTION |
$table->increments('id'); |
递增 ID(主键),相当于 UNSIGNED INTEGER |
$table->integer('votes'); |
相当于 INTEGER |
$table->ipAddress('visitor'); |
相当于 IP 地址 |
$table->json('options'); |
相当于 JSON |
$table->jsonb('options'); |
相当于 JSONB |
$table->lineString('positions'); |
相当于 LINESTRING |
$table->longText('description'); |
相当于 LONGTEXT |
$table->macAddress('device'); |
相当于 MAC 地址 |
$table->mediumIncrements('id'); |
递增 ID(主键),相当于 UNSIGNED MEDIUMINT |
$table->mediumInteger('votes'); |
相当于 MEDIUMINT |
$table->mediumText('description'); |
相当于 MEDIUMTEXT |
$table->morphs('taggable'); |
相当于加入递增 UNSIGNED BIGINT 类型的 taggable_id 与字符串类型的 taggable_type |
$table->uuidMorphs('taggable'); |
相当于添加一个 CHAR (36) 类型的 taggable_id 字段和 VARCHAR (255) UUID 类型的 taggable_type |
$table->multiLineString('positions'); |
相当于 MULTILINESTRING |
$table->multiPoint('positions'); |
相当于 MULTIPOINT |
$table->multiPolygon('positions'); |
相当于 MULTIPOLYGON |
$table->nullableMorphs('taggable'); |
添加一个可以为空版本的 morphs() 字段. |
$table->nullableUuidMorphs('taggable'); |
添加一个可以为空版本的 uuidMorphs() 字段 |
$table->nullableTimestamps(0); |
timestamps() 方法的别名 |
$table->point('position'); |
相当于 POINT |
$table->polygon('positions'); |
相当于 POLYGON |
$table->rememberToken(); |
添加一个允许空值的 VARCHAR (100) 类型的 remember_token 字段 |
$table->set('flavors', ['strawberry', 'vanilla']); |
相当于 SET |
$table->smallIncrements('id'); |
递增 ID(主键),相当于 UNSIGNED SMALLINT |
$table->smallInteger('votes'); |
相当于 SMALLINT |
$table->softDeletes('deleted_at', 0); |
相当于为软删除添加一个可空的 deleted_at 字段 |
$table->softDeletesTz('deleted_at', 0); |
相当于为软删除添加一个可空的 带时区的 deleted_at 字段 |
$table->string('name', 100); |
相当于指定长度的 VARCHAR |
$table->text('description'); |
相当于 TEXT |
$table->time('sunrise', 0); |
相当于指定位数的 TIME |
$table->timeTz('sunrise', 0); |
相当于指定位数带时区的 TIME |
$table->timestamp('added_on', 0); |
相当于指定位数的 TIMESTAMP |
$table->timestampTz('added_on', 0); |
相当于指定位数带时区的 TIMESTAMP |
$table->timestamps(0); |
相当于添加可空的 TIMESTAMP 类型的 created_at 和 updated_at |
$table->timestampsTz(0); |
相当于添加指定时区的可空的 TIMESTAMP 类型的 created_at 和 updated_at |
$table->tinyIncrements('id'); |
相当于自动递增 UNSIGNED TINYINT |
$table->tinyInteger('votes'); |
相当于 TINYINT |
$table->unsignedBigInteger('votes'); |
相当于 UNSIGNED BIGINT |
$table->unsignedDecimal('amount', 8, 2); |
相当于 UNSIGNED DECIMAL ,可以指定总位数和小数位数 |
$table->unsignedInteger('votes'); |
相当于 UNSIGNED INTEGER |
$table->unsignedMediumInteger('votes'); |
相当于 UNSIGNED MEDIUMINT |
$table->unsignedSmallInteger('votes'); |
相当于 UNSIGNED SMALLINT |
$table->unsignedTinyInteger('votes'); |
相当于 UNSIGNED TINYINT |
$table->uuid('id'); |
相当于 UUID |
$table->year('birth_year'); |
相当于 YEAR |