Laravel中支持哪些迁移字段类型?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1157个文字,预计阅读时间需要5分钟。
Laravel 迁移中,避免使用万能字段,如 string、boolean、json、dateTime 等,这些类型覆盖 90% 场景。错误类型会导致查询失效、Eloquent 转换异常或跨库迁移失败。
boolean 字段不是存 0/1 的整数
很多人用 tinyInteger('is_active') 模拟开关,但这是错误的起点。Laravel 的 boolean('is_active') 在 MySQL 中生成 TINYINT(1),在 PostgreSQL 中生成 BOOLEAN,Eloquent 读取时自动转为 PHP true/false;而手动用 tinyInteger 存 0/1,Eloquent 不会做语义转换,$user->is_active === 0(int)而非 false(bool),后续 if ($user->is_active) 逻辑可能意外通过。
本文共计1157个文字,预计阅读时间需要5分钟。
Laravel 迁移中,避免使用万能字段,如 string、boolean、json、dateTime 等,这些类型覆盖 90% 场景。错误类型会导致查询失效、Eloquent 转换异常或跨库迁移失败。
boolean 字段不是存 0/1 的整数
很多人用 tinyInteger('is_active') 模拟开关,但这是错误的起点。Laravel 的 boolean('is_active') 在 MySQL 中生成 TINYINT(1),在 PostgreSQL 中生成 BOOLEAN,Eloquent 读取时自动转为 PHP true/false;而手动用 tinyInteger 存 0/1,Eloquent 不会做语义转换,$user->is_active === 0(int)而非 false(bool),后续 if ($user->is_active) 逻辑可能意外通过。

