2014-09-30 105 views
5

我正在学习如何使用Laravel 5,我遇到了一个问题,我的控制器是在“应用程序”文件夹的根目录下创建的的“控制器”文件夹。我不知道为什么会发生这种情况,因为我重新安装并检查了10次。Laravel 5使:控制器创建控制器在应用程序文件夹,而不是控制器文件夹

我在Windows 8.1 gitbash ..

所以我去

[email protected] ~/desktop/code/my-first-app 
$ php artisan make:controller PagesController 

,然后我得到

控制器成功创建

只有它被创建在app的根目录下,而在控制器中没有任何内容文件夹中。我错过了什么?我还在laracasts的视频中看到其他人也有同样的问题。

+0

我编辑了我的答案。请看看它 – 2014-10-01 14:09:04

回答

22

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

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

php artisan make:controller controllerName 

但是,如果你想在一个自定义目录中创建它,然后请参阅下面的一行:

php artisan make:controller pathName/controllerName 
+1

刚刚尝试Vijay的建议,并创建了pathNamecontrollerName。不过,我用php artisan make成功了:controller pathName \\ controllerName。 – 2015-08-21 00:23:27

+1

你也可以反斜杠,所以它会'php artisan make:controller pathName/controllerName' – SnapShot 2015-10-27 19:08:09

+0

是啊downvote,因为'自定义目录'的建议显然是错误的 - 并且错误超过2年。要在自定义目录中创建一个控制器,您需要'php artisan make:controller DirectoryName/ControllerName' – goredwards 2017-05-18 16:34:46

0

看起来有创建控制器的错误。

我检查了一分钟前使用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; 
0

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

+0

当我试图制作一个控制器或运行一般的php工匠时,我现在在第5行的FilterServiceProvider.php中出现错误。 – user300979 2014-10-01 05:39:38

2

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

PHP工匠制作:控制器目录\\的PageController

Laravel在app /目录中创建的PageController。只是想我会分享给大家。

相关问题