Laravel创建模型迁移时如何将带模型参数的资源控制器生成到其他目录
解决方案
方法1:分步骤生成(兼容性最好,推荐)
你可以将生成模型、迁移的逻辑和生成控制器的逻辑拆分执行,单独为控制器指定自定义存储路径,同时保留自动模型绑定能力:
- 第一步:生成Category模型和对应迁移文件
php artisan make:model Category -m - 第二步:生成指定路径的带模型绑定的资源控制器
例如你要将控制器放到app/Http/Controllers/Admin目录下,执行以下命令即可,路径支持多级嵌套,Artisan会自动创建不存在的文件夹:php artisan make:controller Admin/CategoryController --resource --model=Category
方法2:一次性组合命令(适配Laravel 8及以上版本)
如果不想分两次执行命令,也可以直接在make:model指令中指定控制器的完整路径参数,效果和分步骤执行完全一致:php artisan make:model Category -m --controller=Admin/CategoryController --resource
后续路由配置注意
如果控制器不在app/Http/Controllers根目录下,注册路由时需要指定完整命名空间,或者通过路由组统一设置前缀:
// 单独指定路由 Route::resource('categories', \App\Http\Controllers\Admin\CategoryController::class); // 路由组统一配置namespace Route::prefix('admin')->namespace('App\Http\Controllers\Admin')->group(function () { Route::resource('categories', CategoryController::class); });
内容的提问来源于stack exchange,提问作者fahdshaykh
相关产品推荐
相关产品推荐

