2015-06-09 7 views
3

В Laravel 5 я просто запустил php artisan make:command doMagicStuff, чтобы создать общую команду с выражением die() в обработчике. Всякий раз, когда я пытаюсь `$ this-> отправка (новый DoMagicStuff()), однако, я получаю:Laravel 5: «class App Commands Command not found»

[Symfony\Component\Debug\Exception\FatalErrorException] Class 'App\Commands\Command' not found

Если удалить extends Command это работает, хотя, очевидно, не правильно.

Есть ли причина, по которой он не может найти App \ Commands \ Command? (Примечание: В ./app/Commands нет Command.php, поэтому это подсказка, хотя она может жить под каталогом поставщиков. Я сделал grep для «class Command», но не повезло.

+1

В каталоге поставщика 'Illuminate \ Console \ Command' вы можете использовать. Я также столкнулся с этим, и я подозреваю, что он должен поощрять наилучшую практику использования вашего собственного базового класса Command в этой папке. Однако не знаю, почему это не происходит с установкой на складе. – ceejayoz

+0

Да, столкнулся с той же проблемой. Кроме того, по умолчанию в laravel нет каталога команд. Он создается при запуске 'make: command' в первый раз. –

ответ

2

вы клонировать репозиторий из GitHub репозиторий там есть Command.php ни с чем в нем, просто пустой реферата Мои проекты также есть, так что ... странно

Здесь:.. https://github.com/laravel/laravel/tree/5.0/app/Commands

Всякий раз, когда вы создаете команды, это имена, которые указаны как namespace App\Commands;, и вы extends Command, поэтому он будет выглядеть в каталоге App\Commands для класса Command, так как он существует в репо, он должен существовать в ваша копия тоже.

+0

У меня это случилось со мной после того, как я перебрал приложение Lumen к Laravel. – jeteon

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