db为空时重定向用户

时间:2018-03-17 23:42:14

标签: laravel redirect

我在用户和团队之间有一对多的关系。

如果用户注册,他将被转发到" / welcome"在第一次登录时必须选择一个团队,team_id存储在用户表中。

问题是用户可以通过从侧面输入另一个URL来绕过此过程。如果用户尚未选择团队,如何将用户从所有页面重定向到/ welcome?如果他选择了团队,如何为用户锁定页面?

我已经看过laravel的中间件,但不明白我是如何实现它的。

1 个答案:

答案 0 :(得分:3)

如你所说,你应该使用中间件....基本上你创建一个中间件让我们称之为TeamMiddleware

您检查用户是否未选择他的团队,如果是,您将其重定向回选择团队链接

if(is_null(Auth::user()->team_id))
return redirect(route('team_select'));

然后你将你的链接包装在TeamMiddleware

    Route::group([ 'middleware' => 'TeamMiddleware' ], function () {

        Route::post('/link1' ,  'LinkController@func1);
        Route::post('/link2' ,  'LinkController@func1);
        Route::post('/link3' ,  'LinkController@func1);
        Route::post('/link4' ,  'LinkController@func1);

    });

    Route::post('/team/select' ,  'LinkController@select_team)->name('team_select');