Как переместить пользовательскую модель laravel 5.1 в AppModelsUser?
Можно ли сказать Ларавелу, что я переместил User.php модель?
Ларавель 5.1
FatalErrorException in EloquentUserProvider.php line 126:
Class '\App\User' not found
Мне действительно не хотелось, чтобы все модели находились в корне папки приложения в laravel 5.1, поэтому я создал новую папку и поместил в нее все файлы php моделей: \App\Models
Я изменил контроллер аутентификации, чтобы использовать новый use App\Models\User;
и исправил все файлы модели в папке модели..
Однако, когда я загружаю страницу, я получаю упомянутую ошибку выше.
(другие файлы моделей, конечно, работают нормально, так как к ним обращается мой код, это просто готовые файлы аутентификации из laravel 5.1)
2 answers
Например, если вы создаете папку (например, приложение/Модели), есть два способа переместить ваши модели:
1) Стиль Laravel5 = Использовать PSR4
Пространство имен все ваши файлы моделей с пространством имен App\Models;
Получите доступ к своим моделям в любом месте с их полным пространством имен, например: \App\Models\User::find(1);
2) Стиль Laravel4
Загрузите свою модель с помощью автозапуска composer. В composer.json добавьте:
"autoload": {
"classmap": [
"database",
"app/Models"
],
...
Вам не нужно создавать пространство имен для своих моделей. Они находятся в корневом пространстве имен В файлы с пространством имен, к которым вы можете получить доступ как \Пользователь::найти(1);
Дополнительные примечания:
Если вы измените пространство имен пользовательской модели, вам необходимо обновить
config\auth.php
=>'model'=> App\Models\User::class
Самый простой способ избавиться от длинных пространств имен - это импортировать ваши модели в начале ваших php-файлов, например:
use App\Models\User;
Ссылки:
Вам необходимо изменить ваш файл Project/config/auth.php
на 'model'=> AppName\Models\User::class,