Как laravel 8 может использовать мою собственную таблицу Users, которая существовала раньше и имеет данные?

#php #laravel #web #eloquent #laravel-8

#php #laravel #веб #красноречивый #laravel-8

Вопрос:

У меня есть моя собственная таблица Users в базе данных, но в ней нет тех же полей, что и в таблице Users в laravel 8, как laravel 8 может использовать мою собственную таблицу Users, которая существует раньше и содержит данные (в моей собственной таблице Users много записей)?

Комментарии:

1. можете ли вы подробнее объяснить свою проблему?

2. Моя собственная таблица Users не пуста и содержит поля: user_id, first_name, last_name, password, PRIVILEGE, actif, CREATED_AT, UPDATED_AT как laravel auth может использовать мою таблицу Users без миграции?

3. просто создайте модель пользователя и установите защищенные переменные. а для аутентификации вам нужен адрес электронной почты, номер мобильного телефона или т. Д.

Ответ №1:

Модель пользователя:

 <?php

namespace App;

use IlluminateContractsAuthMustVerifyEmail;
use IlluminateFoundationAuthUser as Authenticatable;
use IlluminateNotificationsNotifiable;

class User extends Authenticatable
{
    use Notifiable;

    protected $table = 'user_table_name'


    protected $primaryKey = 'user_id';

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'user_id', 'first_name', 'last_name', 'password', 'privilege', 'actif'
    ];

    /**
     * The attributes that should be hidden for arrays.
     *
     * @var array
     */
    protected $hidden = [
        'password',
    ];
}

  

Ответ №2:

Вы должны отредактировать свой Models/User.php досье.

 class User extends Authenticatable {
    protected $table = "your_table_name";
    protected $primaryKey = 'user_id';
    const CREATED_AT = 'CREATED_AT';
    const UPDATED_AT = 'UPDATED_AT';
}
  

Теперь нам нужно добавить новую функцию внутри app/Http/Auth/LoginController.php как показано ниже:

 public function username(){
    return 'email_address'; // this string is column of accounts table which we are going use for login
}