注册后用户状态默认设置为 0,表示不活跃。然后管理员需要批准(激活)他的帐户,然后他才能打开所有其他路由。 我怎样才能在 Laravel 中实现这一点?现在我使用中间件:
public function handle($request, Closure $next)
{
if (Auth::user()->userActive == 1) {
return $next($request);
} else {
return redirect('userNotActive');
}
}
然后我将它添加到路由中:
Route::get('home', 'HomeController@index')->middleware('active');
Route::get('search', 'SearchController@searchFilter')->middleware('active');
Route::get('user/{id}', 'UserController@show')->middleware('active');
但是使用这个我需要手动将中间件添加到所有路由。有什么方法可以实现登录后自动对所有路由有效?
最佳答案
我不建议你像这样使用 Route::group
Route::group( ['middleware' => 'active'], function(){
Route::get('home', 'HomeController@index');
Route::get('search', 'SearchController@searchFilter');
Route::get('user/{id}', 'UserController@show');
});
因此您需要做的就是添加所有需要检查用户是否活跃于该组的页面。
关于php - 如果他的帐户未激活,则将用户重定向到一个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46725567/