我正在学习如何使用Laravel 5,我遇到了一个问题,我的控制器是在“app”文件夹的根目录而不是“controller”文件夹中创建的。我不知道为什么会这样,因为我已经安装并检查了10次。
我正在使用Windows 8.1上的gitbash。
所以我去了
john@John ~/desktop/code/my-first-app
$ php artisan make:controller PagesController
然后我得到了
控制器已成功创建
仅在app
的根目录中创建它,而在Controllers文件夹中没有任何内容。我错过了什么?我还看到其他人在laracasts上的视频评论中遇到了同样的问题。
答案 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