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

未知的永远是最精彩的!
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 3
leo

试试 4 个斜杠?

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

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

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

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