#制作環境
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 マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第4回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第6回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【第7回】
Laravel 6.x / 7.x マルチ認証の設定方法 ユーザーと管理者を分けてログイン 【最終回】
#はじめに
この記事はプログラミングをはじめたばかりの素人が、できたことをメモするのに利用しています。
内容には誤りがあるかもしれません。
記事を作成するにあたり、以下のサイトを参考にしています。
こちらの方が詳しいので、当方で付け加えている要件が不要であれば、以下を参考にした方がいいと思います。
長くなるので、何回かに分けて記事を投稿します。
#トレイトメソッドの上書き
app\Http\Controllers\Admin\Auth にあるRegisterController.phpを開き、以下を追記します。
この記述で、RegistersUsersトレイトのshowRegistrationFormを上書きしてます。
public function showRegistrationForm()
{
return view('admin.auth.register');
}
#createメソッドの修正
RegisterController.php をさらに以下のように修正します。
use App\Models\User;は削除するかコメントアウトしてください。
####変更前
use App\Models\User;
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
####変更後
use App\Models\Admin;
protected function create(array $data)
{
return Admin::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
]);
}
#リダイレクト先の変更
app\Providers 内のRouteServiceProvider.phpを開きます。
開いたらpublic const ADMIN_HOME = '/admin/home';を以下のように追記します。
/**
* The path to the "home" route for your application.
*
* @var string
*/
public const HOME = '/home';
public const ADMIN_HOME = '/admin/home';
追記が完了したら、再度app\Http\Controllers\Admin\Auth にあるRegisterController.phpを開き、以下を変更します。
/**
* Where to redirect users after registration.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::ADMIN_HOME;
#コントローラーとルーティングの追加
新たにAdminHomeControllerを作成します。
ターミナルで以下を実行してください。
php artisan make:controller Admin/AdminHomeController
作成したらAdminHomeController.phpを開き、HomeController.phpをベースにして、内容を以下のように記述します。
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AdminHomeController extends Controller
{
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('auth:admin');
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/
public function index()
{
return view('admin.home');
}
}
次にweb.phpを開きルーティングを追記します。
Route::prefix('admin')->namespace('Admin')->name('admin.')->group(function(){
Auth::routes();
Route::get('/home', 'AdminHomeController@index')->name('Admin_home');
});
今回はここで終了です。
次回に続く。