0

0

Laravel数据库字段类型汇总_Laravel Migration数据类型大全

裘德小鎮的故事

裘德小鎮的故事

发布时间:2026-01-08 19:25:33

|

174人浏览过

|

来源于php中文网

原创

Laravel迁移通过Schema Builder提供丰富的字段类型与修饰符,如increments、string、json、timestamp等定义表结构,结合nullable、default、index、foreignId等方法配置字段属性和外键约束,支持MySQL、PostgreSQL、SQLite主流数据库,推荐使用跨平台兼容类型以确保迁移一致性,掌握这些可高效管理数据库 schema。

laravel数据库字段类型汇总_laravel migration数据类型大全

在Laravel中,使用迁移(Migration)来管理数据库结构是标准做法。Laravel的迁移功能基于PHP代码定义数据库表结构,使得团队协作和版本控制更加高效。其中,字段类型的定义通过Schema Builder提供的方法完成。以下是Laravel迁移中常用的数据类型汇总,适用于主流数据库(如MySQL、PostgreSQL、SQLite等),以帮助开发者快速查阅和使用。

常见字段类型(Column Types)

Laravel迁移中通过$table->类型名()的方式添加字段,以下是最常用的字段类型:

  • increments('id'):自增整数,主键,默认unsigned,等同于MySQL的INT AUTO_INCREMENT
  • bigIncrements('id'):大整数自增主键,对应BIGINT
  • integer('votes'):普通整数(INT)
  • tinyInteger('status'):小整数(TINYINT),常用于状态字段
  • smallInteger('level'):短整数(SMALLINT)
  • mediumInteger('quantity'):中等整数(MEDIUMINT,MySQL特有)
  • bigInteger('account_id'):大整数(BIGINT)
  • unsignedInteger('user_id'):无符号整数
  • unsignedBigInteger('parent_id'):无符号大整数,常用于外键
  • float('amount', 8, 2):浮点数,支持指定总位数和小数位
  • double('price', 10, 4):双精度浮点数
  • decimal('total', 12, 2):高精度小数,适合金额存储
  • boolean('is_active'):布尔值,存储0或1
  • string('name', 100):可变字符串,支持指定长度,默认255
  • text('description'):长文本(TEXT)
  • mediumText('content'):中等长度文本(MEDIUMTEXT)
  • longText('article'):超长文本(LONGTEXT)
  • char('country_code', 2):定长字符串
  • enum('status', ['active', 'inactive']):枚举类型,仅限支持数据库(如MySQL)
  • set('tags', ['news', 'hot', 'featured']):集合类型(MySQL特有)
  • json('options'):JSON字段,用于存储结构化数据
  • jsonb('meta'):PostgreSQL中的二进制JSON类型,查询效率更高
  • date('created_at'):日期字段(Y-m-d)
  • dateTime('published_at'):日期时间(Y-m-d H:i:s)
  • dateTimeTz('sent_at'):带时区的日期时间
  • time('start_time'):时间字段(H:i:s)
  • timeTz('local_time'):带时区的时间
  • timestamp('updated_at'):时间戳,常自动维护
  • timestampTz('checked_at'):带时区的时间戳
  • binary('photo'):二进制数据,用于存储文件内容
  • uuid('activation_token'):UUID字段,常用于唯一标识符
  • ipAddress('visitor_ip'):IP地址字段,自动验证格式
  • macAddress('device_mac'):MAC地址字段

字段修饰符(Column Modifiers)

在定义字段后,可以链式调用修饰符进一步配置字段行为:

  • ->nullable():允许字段为NULL
  • ->default($value):设置默认值
  • ->unsigned():设置为无符号(用于整数和主键关联)
  • ->comment('描述信息'):添加字段注释
  • ->first():将字段置于表的第一列(MySQL)
  • ->after('field_name'):指定字段位置(MySQL)
  • ->unique():添加唯一索引
  • ->index():添加普通索引
  • ->primary():设置为主键
  • ->foreign():定义外键关系(需配合foreignId使用)

外键与索引支持

Laravel提供了便捷的方法处理外键约束:

PhpLeft企业网站管理系统2.1 GBK 正式版
PhpLeft企业网站管理系统2.1 GBK 正式版

PhpLeft diversification Management System(中文名为:PHPLEFT多元化管理系统),是全球第一家D时代网站管理系统,根据模型创建栏目,栏目自由扩展字段,操作简便,简单易懂的标签系统,让建站更简单,适合建各类型站点。 phpleftdms 企业网站管理系统 2.1 更新: 数据库管理功能优化

下载
  • $table->foreignId('user_id')->constrained():定义外键字段并自动关联users表
  • ->onDelete('cascade'):删除主记录时级联删除
  • ->onUpdate('cascade'):更新主键时同步更新
  • $table->index(['email', 'status']):创建复合索引

特殊类型与数据库兼容性

某些类型依赖具体数据库引擎支持:

  • MySQL支持:setgeometrypointlinestring 等空间类型
  • PostgreSQL支持:jsonbcidrinetmacaddr
  • SQLite对部分类型(如unsigned)模拟实现,实际存储可能不同

建议在项目中统一使用跨平台兼容的类型,避免迁移时出错。

基本上就这些,掌握这些字段类型和修饰符,就能高效构建Laravel应用的数据库结构。实际开发中结合php artisan make:migration命令和Schema语法,可快速实现数据表管理。不复杂但容易忽略细节,比如unsigned与外键匹配问题,需特别注意。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2294

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1510

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1408

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

951

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1413

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1233

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1444

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1304

2023.11.13

Golang 分布式缓存与高可用架构
Golang 分布式缓存与高可用架构

本专题系统讲解 Golang 在分布式缓存与高可用系统中的应用,涵盖缓存设计原理、Redis/Etcd集成、数据一致性与过期策略、分布式锁、缓存穿透/雪崩/击穿解决方案,以及高可用架构设计。通过实战案例,帮助开发者掌握 如何使用 Go 构建稳定、高性能的分布式缓存系统,提升大型系统的响应速度与可靠性。

60

2026.01.09

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.7万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 785人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号