2014-09-30 95 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。只是想我會分享給大家。