[求助] 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 关联的时候直接使用别名,这样一来就避免了往数据库存储模型命名空间的尴尬

未知的永远是最精彩的!
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 3
leo

试试 4 个斜杠?

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

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

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

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