#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
}