Как перенести модель laravel 5.1 User в \App\Models\User?

Можно ли рассказать Ларавелю, что я переместил модель User.php?

Laravel 5.1

FatalErrorException in EloquentUserProvider.php line 126: 
Class '\App\User' not found

Я действительно не интересовался тем, что все модели находятся в корне папки App в laravel 5.1, поэтому я создал новую папку и разместил в ней все файлы php модели: \App\Models

Я изменил контроллер auth для использования нового use App\Models\User; и скорректировал все файлы модели в папке модели.

Однако, когда я загружаю страницу, я получаю ошибку, упомянутую выше.

(другие файлы моделей, конечно, работают нормально, так как это мой код, доступ к ним, это просто готовый материал auth из laravel 5.1)

Ответы

Ответ 1

Например, если вы создаете папку (например, приложение/Модели), есть два способа перемещения ваших моделей:

1) Laravel5 style = Использовать PSR4

Пространство имен всех ваших файлов модели с пространством имен App\Models; Получите доступ к вашим моделям в любом месте с полным пространством имён, например: \App\Models\User::find(1);

2) Стиль Laravel4

Загрузите модель с автозагрузчиком композитора. В composer.json добавьте:

"autoload": {
        "classmap": [
            "database",
            "app/Models"            
        ],
        ...

Вам не нужно проставлять свои модели в пространстве имен. Они находятся в корневом пространстве имен. В файлах с именами вы можете получить к ним доступ как \User :: find (1);

Дополнительные примечания:

  • Если вы измените пространство имен модели пользователя, вам необходимо обновить config\auth.php => 'model'=> App\Models\User::class

  • Самый простой способ избавиться от длинных пространств имен - это импортировать ваши модели в начале ваших php файлов, например: use App\Models\User;

Ссылки:

Ответ 2

Вам необходимо изменить файл Project/config/auth.php на 'model'=> AppName\Models\User::class,