Я видел возможность изменить имя таблицы базы данных с пользователей на что-то другое, но модель в коде по-прежнему является пользователем. Для согласованности я ищу, как я могу изменить имя модели на что-то другое. В моем случае я хочу назвать его Customer с именем таблицы клиентов.
Изменить имя модели пользователя в Laravel 7
comment
Просто измените имя класса, для согласованности вы также можете изменить имя файла.
- person 乐易盎   schedule 29.06.2020
comment
Проблема в том, что логика аутентификации ищет модель с именем User, и, вероятно, поэтому все статьи об изменении этой модели останавливаются на простом изменении имени таблицы, потому что это довольно тривиально. Я не могу начать знать везде, где есть ссылка на модель пользователя, которую мне нужно изменить, отсюда и вопрос...
- person   schedule 29.06.2020
comment
Вы можете попробовать изменить файл auth.php и изменить имя модели на то, что вы переименовали в User Model.
- person Desmond_   schedule 29.06.2020
comment
Вы найдете ответ здесь. stackoverflow. com: Как изменить модель пользователя в laravel, чтобы использовать другую таблицу для аутентификации, чем пользователи?
- person Ramiz Kongulov   schedule 29.06.2020
comment
P.S. если вы создадите модель клиента, имя таблицы будет автоматически называться клиентами.
- person jewishmoses   schedule 29.06.2020
comment
@jewishmoses да, это... создало бы случайную модель, которая никоим образом не связана с механизмами аутентификации в laravel... явно НЕ то, о чем я просил, если бы вы читали....
- person   schedule 29.06.2020
comment
@RamizKongulov теперь есть ответ, который действительно отвечает тому, о чем я просил. Спасибо, что действительно прочитали вопрос, в отличие от других... :)
- person   schedule 29.06.2020
comment
@user738974Рад был помочь =)
- person Ramiz Kongulov   schedule 29.06.2020
Ответы (1)
Модель User объявлена в файле: config/auth.php
...
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\User::class,
],
...
Чтобы изменить модель пользователя, вы можете изменить имя файла или создать новую модель, а затем изменить объявление в config/auth.php
.
...
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => App\Customer::class,
],
...
Для согласованности моделей и миграции вы можете сгенерировать их обе с помощью одной команды ремесленника:
php artisan make:model Customer --migration
Это создаст единственный экземпляр для имени модели и множественное число для имени таблицы.
person
jeremykenedy
schedule
29.06.2020
Одна вещь, которую вы пропустили, — это оператор использования в верхней части RegisterController, он вызывает модель User, поэтому ее также нужно было переименовать. После изменения это работает.
- person ; 29.06.2020