阅读(4333) (10)

Laravel 8 可用的字段类型

2021-07-07 09:14:38 更新

数据库结构生成器包含构建表时可以指定的各种字段类型:

命令 说明
$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_atupdated_at
$table->timestampsTz(0); 相当于添加指定时区的可空的 TIMESTAMP 类型的 created_atupdated_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