Laravel 5.5问题。
假设用户已经过身份验证并具有正确的访问角色,但您希望他们在访问任何其他路由之前对特定页面执行操作。
在特定页面上执行特定操作之前,您如何阻止他们访问其他路线?
因为放入地址栏中的其他路线会绕过所需的操作页面。
实施例 登录后您有3条路线 1. / a1 2. / a2 3. / a3
如果用户没有对某些路线/计费执行操作,则他们不应该看到1,2,3。但是我注意到,如果用户已经知道1-3并且他们进入地址栏就会将他们带到那里。< / p>
答案 0 :(得分:0)
以上是我上述评论的基本示例。因为我的游戏项目与游戏项目相关,所以需要相应调整以满足您的需求:
中间件:
public function handle($request, Closure $next)
{
$user = Auth::user();
if ($user->game_path == 0)
{
Session::flash('error', 'Your player path must be selected before continuing.');
return redirect('/');
}
return $next($request);
}
内核:
'path' => \App\Http\Middleware\CheckPath::class,
路线:
Route::group(['middleware' => ['path']], function () {
Route::get('/online', 'VariousController@online')->name('online');
});
基本上,如果玩家试图查看/在线,但他们的路径== 0,它会将它们重定向回所需的页面,供他们选择/更新。