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与外键匹配问题,需特别注意。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
laravel组件介绍
laravel组件介绍

laravel 提供了丰富的组件,包括身份验证、模板引擎、缓存、命令行工具、数据库交互、对象关系映射器、事件处理、文件操作、电子邮件发送、队列管理和数据验证。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

340

2024.04.09

laravel中间件介绍
laravel中间件介绍

laravel 中间件分为五种类型:全局、路由、组、终止和自定。想了解更多laravel中间件的相关内容,可以阅读本专题下面的文章。

293

2024.04.09

laravel使用的设计模式有哪些
laravel使用的设计模式有哪些

laravel使用的设计模式有:1、单例模式;2、工厂方法模式;3、建造者模式;4、适配器模式;5、装饰器模式;6、策略模式;7、观察者模式。想了解更多laravel的相关内容,可以阅读本专题下面的文章。

772

2024.04.09

thinkphp和laravel哪个简单
thinkphp和laravel哪个简单

对于初学者来说,laravel 的入门门槛较低,更易上手,原因包括:1. 更简单的安装和配置;2. 丰富的文档和社区支持;3. 简洁易懂的语法和 api;4. 平缓的学习曲线。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

385

2024.04.10

laravel入门教程
laravel入门教程

本专题整合了laravel入门教程,想了解更多详细内容,请阅读专题下面的文章。

141

2025.08.05

laravel实战教程
laravel实战教程

本专题整合了laravel实战教程,阅读专题下面的文章了解更多详细内容。

85

2025.08.05

laravel面试题
laravel面试题

本专题整合了laravel面试题相关内容,阅读专题下面的文章了解更多详细内容。

80

2025.08.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

489

2026.03.04

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

76

2026.03.11

热门下载

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

精品课程

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

共48课时 | 2.5万人学习

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

共3课时 | 0.3万人学习

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

共1课时 | 848人学习

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

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