Laravel中完整模块的删除、导出及跨项目安装方法问询
关于Laravel中Post模块的删除与跨项目迁移方案
好问题!用php artisan make:model Post -a确实会生成一整套CRUD相关的文件,下面分别说明怎么删除这个模块,以及如何把它迁移到另一个Laravel项目中:
一、删除Post模块
因为-a参数会生成模型、控制器、迁移、工厂、请求文件,还有你可能手动添加的路由,所以需要逐个清理:
- 模型文件:删除
app/Models/Post.php - 控制器文件:删除
app/Http/Controllers/PostController.php - 迁移文件:找到
database/migrations/目录下带时间戳的create_posts_table.php文件并删除;如果已经执行过迁移,先运行php artisan migrate:rollback回滚数据库表的创建,避免数据库残留 - 工厂文件:删除
database/factories/PostFactory.php - 请求验证文件:删除
app/Http/Requests/StorePostRequest.php和app/Http/Requests/UpdatePostRequest.php - 路由清理:打开
routes/web.php(或routes/api.php),删掉对应的Post路由,比如Route::resource('posts', PostController::class);
二、导出模块到另一个Laravel项目
如果要把这个模块复制到其他项目,按以下步骤操作即可:
- 复制核心文件:
- 把原项目的
app/Models/Post.php复制到目标项目的同目录下 - 复制
app/Http/Controllers/PostController.php到目标项目的控制器目录 - 复制迁移文件
database/migrations/xxxx_xx_xx_xxxxxx_create_posts_table.php(注意保留原时间戳)到目标项目的migrations目录 - 复制
database/factories/PostFactory.php到目标项目的factories目录 - 复制
StorePostRequest.php和UpdatePostRequest.php到目标项目的app/Http/Requests/目录
- 把原项目的
- 配置路由:在目标项目的路由文件中添加Post的路由,比如
Route::resource('posts', PostController::class); - 数据库迁移:在目标项目根目录运行
php artisan migrate,创建posts数据表 - 测试验证:启动目标项目的服务(
php artisan serve),测试Post模块的增删改查功能是否正常运行
如果你的模块后续会更复杂,也可以考虑把它封装成Laravel包,这样跨项目迁移会更便捷,但对于-a生成的基础CRUD模块,手动复制文件已经足够啦。
内容的提问来源于stack exchange,提问作者Faraz salehi
相关产品推荐
相关产品推荐

