如果你的意思是你想重定向用戶,如果用戶沒有名字和姓氏,你可以使用中間件來解決你的問題。將您的代碼放在中間件文件中。
創建中間件文件
namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Routing\Middleware;
class UserMiddleware implements Middleware {
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (\Request::path() !== 'info' && (\Auth::User()->firstname === NULL || \Auth::User()->lastname === NULL)
{
return \Redirect::to('info');
}
return $next($request);
}
}
註冊中間件路線在app/HTTP/Kernel.php
/**
* The application's global HTTP middleware stack.
*
* @var array
*/
/**
* The application's route middleware.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => 'App\Http\Middleware\Authenticate',
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
'user' => 'App\Http\Middleware\UserMiddleware' // Register this new middleware
];
使用中間件的路線,你想
Route::get('/', [
'middleware' => 'user',
'uses' => '[email protected]'
]);
爲路由添加中間件後,將會運行中間件文件中的每個請求,handle()函數以檢查用戶是否有姓或名。如果用戶沒有,它將重定向到信息,如果用戶擁有所有的信息,它將處理下一個請求。
用戶此時是否可以跳過此步驟,還是必須填寫表單才能使用該應用程序? – lukasgeiter
@lukasgeiter在訪問任何其他頁面之前,他需要填寫它,但只有在用戶有賬戶時才需要填寫。否則,他可以看到頁面 – Szenis