[求助] Laravel 5.8 数据库迁移中,如果字段包含 "\" 反斜杠时,无法正确迁移字段

版本信息

PHP 版本: 7.2+
Laravel 版本:5.8+
数据库版本:mysql 5.7+

我的操作步骤

1、生成迁移文件

php artisan migrate:generate

【求助】Laravel 5.8 数据库迁移中,如果字段包含 "\" 反斜杠时,无法正确迁移字段

2、新建数据库并且更改配置文件

3、运行迁移

php artisan migrate

【求助】Laravel 5.8 数据库迁移中,如果字段包含 "\" 反斜杠时,无法正确迁移字段

我发现了迁移问题

1、生成迁移文件时:
我的数据库中其中有一个字段类型为 enum
【求助】Laravel 5.8 数据库迁移中,如果字段包含 "\" 反斜杠时,无法正确迁移字段

【求助】Laravel 5.8 数据库迁移中,如果字段包含 "\" 反斜杠时,无法正确迁移字段

生成迁移文件后对应的迁移文件中是这样的

【求助】Laravel 5.8 数据库迁移中,如果字段包含 "\" 反斜杠时,无法正确迁移字段

2、执行迁移命令时:
上面生成的迁移文件运行后生成的数据库字段的枚举类型如下

【求助】Laravel 5.8 数据库迁移中,如果字段包含 "\" 反斜杠时,无法正确迁移字段

自我审查

个人认为在生成迁移文件的时候, "\" 被php转义成了 "\", 在执行迁移文件的时候 "\" 又被转为了 ""。

我尝试了 将 "\" 转为 "\\" 但是得到的还是相同的结果,希望大家可以帮帮我,谢谢。

已解决

谢谢 Musk·C·Ace 大佬,帮我解决了这个问题。(第一次发帖不知道如何@)

大家可以看看源文档
【求助】Laravel 5.8 数据库迁移中,如果字段包含 "\" 反斜杠时,无法正确迁移字段

1、首先在 AppServiceProvider.php 注册 “别名”
【求助】Laravel 5.8 数据库迁移中,如果字段包含 "\" 反斜杠时,无法正确迁移字段

2、然后在进行 morph 关联的时候直接使用别名,这样一来就避免了往数据库存储模型命名空间的尴尬

未知的永远是最精彩的!
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 3
leo

试试 4 个斜杠?

4年前 评论
看上隔壁小花了啦 (楼主) 4年前

所以,不想起别名怎么搞呢?

4年前 评论
看上隔壁小花了啦 (楼主) 4年前
ZsmHub 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!