You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Artisan命令在指定目录创建Model和Controller

解决Laravel Artisan在指定子目录创建Model和Controller的问题

问题原因

使用php artisan make:model Admin\Services\Post -mc时,-c(--controller)选项默认只会在App/Http/Controllers根目录生成控制器,不会自动跟随模型的子目录结构,所以需要手动指定控制器的目标路径。

解决方法

方法1:在make:model命令中明确指定控制器路径

通过--controller选项直接指定控制器的完整路径(或命名空间),让Artisan生成到目标目录:

# 使用斜杠路径写法(推荐,避免转义)
php artisan make:model Admin/Services/Post -m --controller=Admin/Services/PostController

# 或者使用命名空间写法(注意反斜杠转义)
php artisan make:model Admin\\Services\\Post -m --controller=Admin\\Services\\PostController

执行后,模型会生成在App/Models/Admin/Services/Post.php,控制器会生成在App/Http/Controllers/Admin/Services/PostController.php,同时自动关联模型。

方法2:分开创建模型和控制器

先创建指定目录的模型,再单独创建对应目录的控制器并关联模型:

  1. 创建模型:
php artisan make:model Admin/Services/Post -m
  1. 创建关联模型的控制器:
php artisan make:controller Admin/Services/PostController --model=Admin\\Services\\Post

这种方式更灵活,适合需要单独调整模型或控制器配置的场景。

额外说明

  • 命令中的路径可以用/或\,在类Unix终端(Linux/Mac)中,反斜杠需要用\\转义;Windows终端中直接用\即可。
  • 生成的文件会自动带上正确的命名空间,比如控制器的命名空间为App\Http\Controllers\Admin\Services,模型为App\Models\Admin\Services。

内容的提问来源于stack exchange,提问作者nischalinn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 18:12:03