Laravel 重定向到用户在身份验证之前的位置-但已注册

Laravel 重定向到用户在身份验证之前的位置-但已注册,laravel,laravel-5,laravel-5.7,Laravel,Laravel 5,Laravel 5.7,我可以在重定向验证中间件中看到: return $next($request); 这样,用户登录后就可以返回到原来的位置 如果用户到达auth中间件,被要求登录,但注册,那么有没有办法实现类似的效果?一旦注册,用户如何自动返回原始页面?您可以将以下几行函数添加到RegistrationController.php 公共函数showRegistrationForm() { 会话(['before_registration_url'=>url()->previous()]); 返回视图('auth

我可以在
重定向验证
中间件中看到:

return $next($request);
这样,用户登录后就可以返回到原来的位置


如果用户到达auth中间件,被要求登录,但注册,那么有没有办法实现类似的效果?一旦注册,用户如何自动返回原始页面?

您可以将以下几行函数添加到
RegistrationController.php

公共函数showRegistrationForm()
{
会话(['before_registration_url'=>url()->previous()]);
返回视图('auth.register');
}
受保护的函数重定向到()
{
$url=会话(“注册前url”);
session()->forget('before_registration_url');
返回$url;
}
showRegistrationForm
函数将覆盖
RegisterUsers
trait中的默认函数。它将在当前会话中存储上一个url,然后返回默认视图

注册后,
重定向到
功能将检索存储的url,从会话中删除url,然后返回url

或者,如果要存储用户在重定向到登录表单之前所在的url,可以将其添加到
LoginController

公共函数showloginfo()
{
会话(['before_registration_url'=>url()->previous()]);
返回视图('auth.login');
}
这取决于登记表的位置

--添加--

您还可以使用
url.designed
,因为这是在中间件将您重定向到登录时设置的:

受保护的函数重定向到()
{
返回会话('url.designed');
}

您可以将以下几行函数添加到
RegistrationController.php

公共函数showRegistrationForm()
{
会话(['before_registration_url'=>url()->previous()]);
返回视图('auth.register');
}
受保护的函数重定向到()
{
$url=会话(“注册前url”);
session()->forget('before_registration_url');
返回$url;
}
showRegistrationForm
函数将覆盖
RegisterUsers
trait中的默认函数。它将在当前会话中存储上一个url,然后返回默认视图

注册后,
重定向到
功能将检索存储的url,从会话中删除url,然后返回url

或者,如果要存储用户在重定向到登录表单之前所在的url,可以将其添加到
LoginController

公共函数showloginfo()
{
会话(['before_registration_url'=>url()->previous()]);
返回视图('auth.login');
}
这取决于登记表的位置

--添加--

您还可以使用
url.designed
,因为这是在中间件将您重定向到登录时设置的:

受保护的函数重定向到()
{
返回会话('url.designed');
}

如果我理解你的问题。默认情况下,Laravel可以根据需要工作。否,注册后,成功注册后,它会在RegisterController.php文件中的$redirectTo中找到定义的url返回重定向(“/”);如果我理解你的问题。默认情况下,Laravel可以根据需要工作。否,注册后,成功注册后,它会在RegisterController.php文件中的$redirectTo中找到定义的url返回重定向(“/”);