IDE 无法编辑并保存 sail 命令生成的文件

使用 sail 生成的文件 IDE 无法编辑保存

问题描述

在使用 sail artisan make:migration create_xxx_table等命令生成的迁移文件或者模型文件,用 IDE 打开时编辑后,保存文件时会提示没有权限保存或者无法保存,如下图:

sail 命令生成的文件 IDE 无法编辑保存

问题原因

在构建编排容器时,没有指定 WWWUSER 与 WWWGROUP,导致 sail 生成的文件属于一个名为 1337 的未知用户,而 IDE 所属用户为你的 Ubuntu 默认用户,所以导致文件没有编辑权限。

解决办法

先进入项目目录,执行以下命令来删除容器(不会删除数据,放心使用):

sail down

获取你在 Ubuntu 子系统中的 UID,假设你的用户名为myhui

id myhui

保存运行结果:

uid=1000(myhui) gid=1000(myhui) groups=1000(myhui),0(root),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),117(netdev),1001(docker)

打开.env文件,将上述命令生成的UID与所属用户组 ID 加入以下配置项:

# uid
WWWUSER=1000
# 所属用户组
WWWGROUP=1000

回到 Ubuntu 子系统中,进入项目目录,执行以下命令启动容器:

sail up

使用 sail 命令来生成一个文件验证生成的文件权限是否正确:

sail artisan make:model TestModelNine

结果如下:

使用 Laravel Sail 时, 遇到的各类问题合集

发现所属的用户已经是 Ubuntu 的默认用户了,使用编辑器修改文件,发现可以正常保存,问题解决。

本作品采用《CC 协议》,转载必须注明作者和本文链接
顺势而为
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

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