我想创建一个自定义中间件,只有当用户经过身份验证并且电子邮件是某个电子邮件才能访问 /admin 页面。
虽然,当我指定自定义路由然后重定向时,它总是说重定向太多。
简短的解释。
我的中间件称为“admin.verify”
路由文件会自动加载,如果我执行重定向('/home'),它会自动运行我的中间件,这就是为什么我猜测它经常重定向到主页。
路线文件:
Route::get('/admin', 'AdminController@index')->name('admin.index');
Run Code Online (Sandbox Code Playgroud)
管理员控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class AdminController extends Controller
{
public function __construct(){
$this->middleware(['auth', 'admin.verify']);
}
public function index(){
return view('admin.test');
}
}
Run Code Online (Sandbox Code Playgroud)
中间件:
public function handle($request, Closure $next)
{
if (Auth::check() && Auth::User()->email == 'Tester@gmail.com') {
return $next($request);
} else {
return redirect()->route('home');
}
Run Code Online (Sandbox Code Playgroud)
我的家乡路线:
GET|HEAD | home | home| App\Http\Controllers\HomeController@index | web,auth
Run Code Online (Sandbox Code Playgroud)
家庭控制器:
class HomeController extends Controller …Run Code Online (Sandbox Code Playgroud) 我已生成站点地图.xml文件并想要返回.我将文件放在我的views文件夹中并制作了这条路线:
Route::get('/site-map', function(){
return view('sitemap.xml');
});
Run Code Online (Sandbox Code Playgroud)
虽然我不能让它显示出来.