2015-12-15 2 views
0

Добрый день, я не понимаю это исключениеLaravel 5.1 Пространство имен для контроллера дают Reflection Exception

ReflectionException в Container.php линии 737: приложение Class \ Http \ Контроллеры \ Логин \ LoginController не существует

Я знаю, что это связано с пространством имен, но я настроил автозагрузку composer.json. Когда я изменил его на приложение \ Http \ Controllers \ Login, он работает нормально. Я также сделал мастеровых четкий скомпилированные и композитор дамп-автозагрузку

Мой класс, как это

<?php 

namespace Login; 

use Controller; 
use Validator; 
use Input; 
use Auth; 
use Redirect; 
use View; 

class LoginController extends Controller{} 

Мой composer.json автозагрузку

"autoload": { 
"classmap": 
    [ "app/Http/Controllers" , "app/Models" , "database" ], 
"psr-4": { 
    "app\\": "app/" 
} 
}, 

Моя Контроллеры Справочник, как это

- app 
-- Http 
--- Controllers 
---- Login 
----- LoginController.php 
-- Models 
--- User 
---- User.php 

Заранее благодарен

Edit: Почему я не имеют проблем с моими файлами модели, когда я использовать пространство имен, как это:

имен пользователя;

В моей конфигурации AUTH у меня есть это:

'модель' => User \ User: класс,

ответ

2

Ваш контроллер находится в Войти имен, в то время как оно должно быть в app \ Http \ Controllers \ Login namespace.

Никакие записи в composer.json не могут изменить способ использования пространств имен PHP - отображение в нем может быть просто использовано для определения автозагрузчика, где искать физические файлы из данного пространства имен.

+0

Когда я использовал laravel 4, мне не нужно было устанавливать приложение/модели или приложения/контроллеры, я думал, что с изменением classmap он будет работать. – user2876735

+0

атрибут classmap в composer.json должен сказать автозагрузчик, где можно найти классы, которые не соответствуют правилам PSR-0 или PSR-4. Ни композитор, ни автозагрузчик не могут изменить тот факт, что ваш контроллер находится в пространстве имен «Логин» –

+1

Избегайте использования функции classmap, если ваш код может соответствовать PSR-4. Это скроет ошибки с неправильным именем или помещением в файловую систему, и для создания автозагрузчика потребуется больше времени, потому что дерево каталогов необходимо отсканировать для файлов php и проанализировать для классов. – Sven

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