Laravel 5使:控制器创建控制器在应用程序文件夹,而不是控制器文件夹
我正在学习如何使用Laravel 5,我遇到了一个问题,我的控制器是在“应用程序”文件夹的根目录下创建的的“控制器”文件夹。我不知道为什么会发生这种情况,因为我重新安装并检查了10次。Laravel 5使:控制器创建控制器在应用程序文件夹,而不是控制器文件夹
我在Windows 8.1 gitbash ..
所以我去
[email protected] ~/desktop/code/my-first-app
$ php artisan make:controller PagesController
,然后我得到
控制器成功创建
只有它被创建在app
的根目录下,而在控制器中没有任何内容文件夹中。我错过了什么?我还在laracasts的视频中看到其他人也有同样的问题。
在Laravel 5中,不需要指定路径。默认情况下,它将在目录中生成控制器。
因此,控制器可以这样创建:
php artisan make:controller controllerName
但是,如果你想在一个自定义目录中创建它,然后请参阅下面的一行:
php artisan make:controller pathName/controllerName
刚刚尝试Vijay的建议,并创建了pathNamecontrollerName。不过,我用php artisan make成功了:controller pathName \\ controllerName。 – 2015-08-21 00:23:27
你也可以反斜杠,所以它会'php artisan make:controller pathName/controllerName' – SnapShot 2015-10-27 19:08:09
是啊downvote,因为'自定义目录'的建议显然是错误的 - 并且错误超过2年。要在自定义目录中创建一个控制器,您需要'php artisan make:controller DirectoryName/ControllerName' – goredwards 2017-05-18 16:34:46
看起来有创建控制器的错误。
我检查了一分钟前使用Laravel 5我已经安装了大约一周或两个,它工作正常。但是当我安装新鲜的Laravel 5时,现在控制器在app/
文件夹中创建,而不是在app/Http/Controllers
中创建。
但是,开发人员也可能改变主意,在那里存储控制器(Laravel 5仍在开发中)。
目前没有人知道这一点,你也可以看看Laracast discussion关于这个问题。
什么也不奇怪你不能手动添加此命令的路径。
在Laravel 4,你可以这样做:
php artisan controller:make --path="app/Controllers" PagesController
但Laravel5为controller:make
你有较少的选项比较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”, “消息”:“类 '照亮\路径\ 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;
做一个作曲家的更新,它会恢复正常。
当我试图制作一个控制器或运行一般的php工匠时,我现在在第5行的FilterServiceProvider.php中出现错误。 – user300979 2014-10-01 05:39:38
尝试后php artisan make:controller Directory \ PageController,Laravel 5.1会在我的app目录中创建一个名为DirectoryPageController的控制器。对我来说,解决办法是逃避与另一个反斜杠反斜杠所以下面为我工作:
PHP工匠制作:控制器目录\\的PageController
Laravel在app /目录中创建的PageController。只是想我会分享给大家。
我编辑了我的答案。请看看它 – 2014-10-01 14:09:04