#制作環境
Windows 10
Laravel : 6.18.35
Laravel/ui : 1.0
Laravel-mix : 5.0.1
Bootstrap : 4.0.0
MDBootstrap : 4.19.1
chart.js : 2.9.3
XAMPP
PHP : 7.4.3
Visual Studio Code
#関連記事
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第1回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第2回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第4回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第5回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第6回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第7回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【最終回】
#はじめに
この記事はプログラミングをはじめたばかりの素人が、できたことをメモするのに利用しています。
内容には誤りがあるかもしれません。
記事を作成するにあたり、以下のサイトを参考にしています。
こちらの方が詳しいので、当方で付け加えている要件が不要であれば、以下を参考にした方がいいと思います。
長くなるので、何回かに分けて記事を投稿します。
#管理者用のモデルを作成
Laravelのプロジェクトのディレクトリでターミナルを開き、モデルを作成します。
php artisan make:model Models/Admin -m
-m を付けることで、マイグレーションファイルも同時に作成します。
#####★ポイント★
Modelsフォルダの中にAdmin.phpを作成するので、必ずモデル名の前にModels/を付けてください。
#マイグレーションファイルの編集
マイグレーションファイルcreate_users_tableを開き、nameにuniqueを追記した後、以下の内容を全てコピーします。
※最終的にメールアドレスでの認証から、ユーザー名(ユーザーID)での認証に変更する為、uniqueをnameに設定してます。
認証に使用するカラムはuniqueでなければなりません。
public function up()
{
Schema::create('users', function (Blueprint $table) {
$table->id();
$table->string('name')->unique(); // ->unique()を追記
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
次に、マイグレーションファイルcreate_admins_tableを開き、コピーした内容を貼り付けます。
貼り付け後、usersの部分をadminsに変更します。
public function up()
{
Schema::create('admins', function (Blueprint $table) {
$table->id();
$table->string('name')->unique();
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
#モデルの編集
ModelsフォルダのUser.phpを開き、中身をコピーします。
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
次にモデル、Admin.phpを開き、コピーした内容を貼り付けます。
class User部分はclass Adminに変更してください。
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Admin extends Model
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
/**
* The attributes that should be cast to native types.
*
* @var array
*/
protected $casts = [
'email_verified_at' => 'datetime',
];
}
#テーブルの作成
ターミナルで以下を実行し、テーブルを作成してください。
php artisan migrate
今回はここで終了です。
次回に続く。