Laravel 5 make:控制器在app文件夹中创建控制器而不是控制器文件夹

时间:2014-09-30 09:49:49

标签: laravel makefile git-bash laravel-5

我正在学习如何使用Laravel 5,我遇到了一个问题,我的控制器是在“app”文件夹的根目录而不是“controller”文件夹中创建的。我不知道为什么会这样,因为我已经安装并检查了10次。

我正在使用Windows 8.1上的gitbash。

所以我去了

john@John ~/desktop/code/my-first-app
$ php artisan make:controller PagesController

然后我得到了

  

控制器已成功创建

仅在app的根目录中创建它,而在Controllers文件夹中没有任何内容。我错过了什么?我还看到其他人在laracasts上的视频评论中遇到了同样的问题。

6 个答案:

答案 0 :(得分:29)

在Laravel 5中,不需要指定路径。默认情况下,它将在目录中生成控制器。

因此,可以像这样创建控制器:

php artisan make:controller controllerName

但是,如果您想在自定义目录中创建它,请参阅以下行:

php artisan make:controller pathName/controllerName

答案 1 :(得分:2)

尝试php artisan make:controller Directory \ PageController后,Laravel 5.1会在我的app目录中创建一个名为DirectoryPageController的控制器。我的解决方案是用另一个反斜杠来逃避反斜杠,所以下面的内容对我有用:

php artisan make:controller Directory \\ PageController

Laravel在app / Directory中创建了一个Pagecontroller。只是想我会与大家分享。

答案 2 :(得分:2)

可以将控制器创建到特定路径,如下所示:

php artisan make:controller controllerName

但是,如果要在自定义目录中创建它,请参考以下行:

以下将在根路径(应用程序外部目录)上创建

php artisan make:controller App\\../pathName/controllerName

如果要在应用程序目录中,则应为

php artisan make:controller App\\pathName/controllerName

在Laravel 6.x上测试

答案 3 :(得分:0)

创建控制器似乎存在一个错误。

我在一两分钟前使用Laravel 5进行了检查,我已经安装了大约一两周,而且工作正常。但是当我安装新的Laravel 5时,现在控制器是在app/文件夹而不是app/Http/Controllers中创建的。

但也有可能开发人员改变主意控制器的存储位置(Laravel 5仍处于开发阶段)。

目前没有人知道,你也可以看看Laracast discussion这个问题。

您也无法手动添加此命令的路径,这也很奇怪。

在Laravel 4中你可以这样做:

php artisan controller:make --path="app/Controllers" PagesController

但是在controller:make的Laravel5中,与Laravel 4相比,你有更少的选择,它们是:

Options:
 --plain               Generate an empty controller class.
 --help (-h)           Display this help message.
 --quiet (-q)          Do not output any message.
 --verbose (-v|vv|vvv) Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug
 --version (-V)        Display this application version.
 --ansi                Force ANSI output.
 --no-ansi             Disable ANSI output.
 --no-interaction (-n) Do not ask any interactive question.
 --env                 The environment the command should run under.

所以你不能在这里放置自定义路径或者不要在Laravel 4中生成一些方法。

修改

似乎它在最新的Laravel 5提交中应该再次运行。因此,您应该创建新的Laravel 5项目或运行:

composer update

更新项目。

但是您可能会遇到一些错误,例如:

  

{"错误" {"类型":" Symfony的\元器件\调试\异常\ FatalErrorException""消息":& #34;类   '照亮\路由\ FilterServiceProvider'找不到","文件":

删除这些错误:

文件app/Providers/FilterServiceProvider.php中的

更改

use Illuminate\Routing\FilterServiceProvider as ServiceProvider;

成:

use Illuminate\Foundation\Support\Providers\FilterServiceProvider as ServiceProvider;

并在文件app/Providers/RouteServiceProvider.php中更改

use Illuminate\Routing\RouteServiceProvider as ServiceProvider;

成:

use Illuminate\Foundation\Support\Providers\RouteServiceProvider as ServiceProvider;

答案 4 :(得分:0)

做一个作曲家更新,它会恢复正常。

答案 5 :(得分:0)

php artisan make:controller -r controllerName

尝试使用-r选项,它将创建带有锅炉板的控制器(所有基本功能如: - 公共功能索引(){},公共功能存储(请求$请求){},等等.... .. 为了更好地理解您还可以访问: - https://laracasts.com/series/laravel-from-scratch-2017