2014-09-30 1 views
5

Я изучаю, как использовать Laravel 5, и я столкнулся с проблемой, когда мои контроллеры создаются в корне папки «app» вместо папки «контроллер». Я понятия не имею, почему это происходит, поскольку я установлен и проверен 10 раз.Laravel 5 make: контроллер, создающий контроллер в папке приложения вместо папки контроллера

Я в gitbash на окнах 8.1 ..

Так я иду

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

, а затем я получаю

Контроллер создан успешно

Только это время созданный в корне app и ничего в контроллерах папка. Что мне не хватает? Я также вижу, что другие имеют ту же проблему в комментариях по видео на laracasts.

+0

Я отредактировал свой ответ. Посмотрите на это –

ответ

22

В Laravel 5 не указывается путь. По умолчанию он будет генерировать контроллер в каталоге.

Таким образом, контроллер может быть создан так:

php artisan make:controller controllerName 

Однако, если вы хотели бы создать его в пользовательской директории, то обратитесь к строке ниже:

php artisan make:controller pathName/controllerName 
+1

Просто попробовал предложение Виджая и создал путьNamecontrollerName. Однако у меня был успех с помощью php artisan make: controller pathName \\ controllerName. –

+1

Вы также можете отменить косую черту, так что это будет 'php artisan make: controller pathName/controllerName' – SnapShot

+0

да downvote, потому что совет« пользовательского каталога »явно ошибочен - и он ошибся более 2 лет. Чтобы создать контроллер в настраиваемом каталоге, вам нужно сделать 'т.п.р. artisan: controller DirectoryName/ControllerName' – goredwards

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.

EDIT

Кажется, что он работает снова, как должен, в новейшей фиксации Laravel 5. Поэтому вы должны либо создать новый проект Larvel 5, либо запустить:

composer update 

для обновления проекта.

Однако вы, вероятно, получить некоторые ошибки, как, например:

{ "ошибка": { "типа": "Symfony \ Component \ Debug \ Exception \ FatalErrorException", "сообщение": "Класс 'Осветите \ Routing \ 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

Теперь я получаю сообщение об ошибке в FilterServiceProvider.php в строке 5, когда пытаюсь создать контроллер или запустить php artisan в целом. – user300979

2

После попытки php artisan make: controller Directory \ PageController, Laravel 5.1 создаст контроллер с именем DirectoryPageControllerin в моем каталоге приложений. Решение для меня было, чтобы избежать обратной косой черты с другой обратной косой черты, так что следующие работал для меня:

PHP мастеровых марка: Каталог контроллер \\ PageController

Laravel создал PageController в приложение/Directory. Просто подумал, что я поделюсь со всеми.

Смежные вопросы