php - 如果他的帐户未激活,则将用户重定向到一个页面

标签 php laravel

注册后用户状态默认设置为 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/

相关文章:

php - 将多个值放入一列但PHP中的不同行

php - Laravel:验证需要大于另一个的整数字段

unit-testing - 如何模拟 LDAP Laravel 身份验证进行单元测试

laravel - 如何在 laravel 中获取所有公共(public)路由

php - 在 Laravel 中列出本月或每个月的所有日期

php - Laravel : failing to add foreign key 中的 SQLSTATE[HY000] 错误

php - Codeigniter 重定向不在相对重定向中保留 HTTPS

php - mysql - 查明输入是否存在于最后 30 条记录中

索引空变量时未引发 php 未定义索引通知

php - 使用 Laravel 将 CSV 文件上传到 MySQL