Изменить имя модели пользователя в Laravel 7

Я видел возможность изменить имя таблицы базы данных с пользователей на что-то другое, но модель в коде по-прежнему является пользователем. Для согласованности я ищу, как я могу изменить имя модели на что-то другое. В моем случае я хочу назвать его Customer с именем таблицы клиентов.


person Community    schedule 29.06.2020    source источник
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
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
comment
Одна вещь, которую вы пропустили, — это оператор использования в верхней части RegisterController, он вызывает модель User, поэтому ее также нужно было переименовать. После изменения это работает. - person ; 29.06.2020