我想在不使用Laravel默认用户数据库的情况下创建多个用户

7uzetpgm  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(75)

如何使用不同的数据库登录?我用不同的用户和数据库登录时遇到问题?

AuthController

public function loginAksi(Request $request)
{
    if ($request->email == null or $request->password == null) {
        return redirect()->back()->with(['error' => 'Masukkan Email atau Password !']);
    } else {
        if (Auth::attempt([ 'email' => $request->email, 'password' => $request->password ])) {
            $user = Auth::user();
            if($user->level == 1){
                return redirect()->route('admin.dashboard')->with(['success' => 'Selamat Datang']);
            } elseif($user->level == 0){
                return redirect()->route('user');
            } else {
                return redirect()->route('userlansia');
            }
        } else {
            return redirect()->back()->with(['error' => 'Login Gagal !']);
        }
    }
}

我已经成功地使用了用户登录从默认数据库,如用户,现在我想登录一个不同的数据库

兰莎模型酒店

protected $fillable = [
        'id_lansia',
        'nama_lansia',
        'tempat_lahir',
        'tgl_lahir',
        'alamat',
        'No_tlp',
        'NIK',
        'No_BPJS',
        'email',
        'password',
        'level',
        'user'  
    ];

    protected $table = 'lansias';

    protected $primaryKey = 'id_lansia';

auth.php

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
    ],

'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\User::class,
        ],

kernel.php

protected $routeMiddleware = [
      'admin' => \App\Http\Middleware\AdminMiddleware::class,
      'user' => \App\Http\Middleware\UserMiddleware::class,
      'userlansia' => \App\Http\Middleware\LansiaMiddleware::class,
];

有人能帮忙吗?

t2a7ltrp

t2a7ltrp1#

在Laravel中,你可以分别在java/database.php和java/auth.php文件中配置多个数据库连接和身份验证提供程序。

设置多个数据库连接:

在config/database.php中,在connections数组下定义数据库连接。例如,如果你想建立两个MySQL连接:

'connections' => [ 'mysql' => 
[ // Your default connection configuration ], 
'mysql1' => [ 'driver' => 'mysql', // Configure your second database connection details here ], 
]

要将Eloquent模型用于不同的数据库,请在模型顶部指定连接:

class MyModel extends Model { protected $connection = 'mysql1';
}

设置身份验证提供程序:
在document/auth.php中,在providers数组下定义身份验证提供程序。如果每个连接有不同的用户模型:

'providers' => ['users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class,
    ],
    'users1' => [
        'driver' => 'database',
        'table' => App\Models\User1::class,
    ],
],

要对特定表中的用户进行身份验证,请使用guard方法:

if (Auth::guard('users1')->attempt($credentials)) {// Authentication successful for users1 table
} else {
    // Authentication failed
}

通过遵循这些步骤,您可以在Laravel应用程序中管理多个数据库连接和身份验证提供程序。

相关问题