LoginSignup
1
0

More than 3 years have passed since last update.

Laravel + Backpack で users 以外のテーブルを管理者用に使う

Posted at

Laravel の Auth の既定では users テーブル登録のユーザーが対象となります。
これを変更して別のテーブルを使用するには、config/auth.php の中の設定を変更します。
例えば、admins というテーブルのユーザーに変えるには、

'defaults' => [
    'guard' => 'web',
    // 'passwords' => 'users',  <--- これのかわりに
    'passwords' => 'admins', <--これに代える
], // 以下略

これについては、n_oshiumiさんの記事【Laravel】usersテーブルではない別のテーブルで認証をするが詳しいです。

さて、Laravel 用の管理ページ作成ツール Backpack をインストールすると、上記の設定があっても、既定の users テーブルが Auth の対象となります

これは、Backpack の設定で Auth の既定が users になっているためで、Laravel の config.auth の設定はそのまま残っています。

Backpack の設定ファイル(config/backpack/base.php)の下記の箇所を変えることで、laravel で別テーブルの設定を再び使えるようになります(208行付近以下)

/*
|--------------------------------------------------------------------------
| Authentication
|--------------------------------------------------------------------------
*/

// Fully qualified namespace of the User model
// 'user_model_fqn' => config('auth.providers.users.model'), <-- これを
'user_model_fqn' => config('auth.providers.admins.model'),   <-- これに代える
// 'user_model_fqn' => App\User::class, // works on Laravel <= 7
// 'user_model_fqn' => App\Models\User::class, // works on Laravel >= 8

上記は、Laravel 6 の場合です。Laravel 7, 8 はそれぞれ書き方がことなりますので要注意です。

環境: Laravel 6, Backpack 4.1

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0