Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第4回】
制作環境
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 マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第3回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第5回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第6回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第7回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【最終回】
はじめに
この記事はプログラミングをはじめたばかりの素人が、できたことをメモするのに利用しています。
内容には誤りがあるかもしれません。
記事を作成するにあたり、以下のサイトを参考にしています。
こちらの方が詳しいので、当方で付け加えている要件が不要であれば、以下を参考にした方がいいと思います。
長くなるので、何回かに分けて記事を投稿します。
ルーティングの編集
routes内にある、web.phpを開きます。
laravel/ui の -authで認証機能をインストールしているので、Auth::routes();が既に設定されているはずです。
このAuth::routes();だけで、user側のログイン、ログアウト、新規登録等のルーティングがされています。
以下のように、ルーティングを追加してください。
Route::get('/', function () {
return view('welcome');
});
// ユーザー側の認証に関するルーティング
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
// 管理者用の認証に関するルーティング
Route::prefix('admin')->namespace('Admin')->name('admin.')->group(function(){
Auth::routes();
});
これはwelcomeページ表示用のルーティングです。
最初からあるルーティングです。
Route::get('/', function () {
return view('welcome');
});
こちらがユーザー側の認証に関するルーティングです。
Auth::routes();
こちらは/homeにアクセスした時のルーティングです。
->name('home')と記述することで、ルーティングに名前を付けています。
Route::get('/home', 'HomeController@index')->name('home');
こちらが管理者側の認証に関するルーティングです。
Route::prefix('admin')->namespace('Admin')->name('admin.')->group(function(){
Auth::routes();
});
ルーティングの確認
ここまで作成したら、一度ルーティングの中身を確認してみてください。
ターミナルで以下を実行すると、ルーティングを一覧で確認できます。
php artisan route:list
以下を実行することで、ルーティングをテキストファイルで出力することもできます。
sample部分は好きに変更してください。
php artisan route:list > sample.txt
コントローラーの複製
app\Http\Controllers に、新たにAdminディレクトリを作成してください。
作成したら、app\Http\ControllersにあるUser用のAuthディレクトリを、Adminディレクトリに丸ごとコピーします。
コピーが完了したら、namespaceが全てApp\Http\Controllers\Auth になってるので、コピーしたファイルのnamespaceを全て、App\Http\Controllers\Admin\Auth に変更します。
ビューの複製
resources\views に新たにadminディレクトリを作成し、resources\views\authをコントローラと同じように作成したディレクトリにコピーします。
ルート先の変更
ビューをコピー後、resources\views\admin\auth\register.blade.php を開き、actionの記述を修正します。
変更前
<form method="POST" action="{{ route('register') }}">
変更後
<form method="POST" action="{{ route('admin.register') }}">
この他のログイン画面についてもbladeファイルの中でルーティングのNameが使用されているためすべてadmin.xxxxxに変更してください。
今回はここで終了です。
次回に続きます。
Author And Source
この問題について(Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第4回】), 我々は、より多くの情報をここで見つけました https://qiita.com/Charry/items/79ad43e81a78733750fd著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .