我的Laravel应用程序遇到一个关键问题。验证失败时,Laravel会将请求重定向到根URL,而不是先前的URL。我尝试使用FormRequest,但仍然给出相同的结果。
然后,每次返回根URL时,我都会使用不同的路由检查以前的URL(使用url()->previous()
方法)。
这是会话配置文件。 (据我所知Laravel从会话中获取了先前的URL)
'driver' => env('SESSION_DRIVER', 'file'),
'lifetime' => env('SESSION_LIFETIME', 300),
'expire_on_close' => false,
'encrypt' => false,
'files' => storage_path('framework/sessions'),
'connection' => null,
'table' => 'sessions',
'store' => null,
'lottery' => [2, 100],
'cookie' => env(
'SESSION_COOKIE',
str_slug(env('APP_NAME', 'laravel'), '_').'_session'
),
'path' => '/',
'domain' => env('SESSION_DOMAIN', null),
'http_only' => true,
'same_site' => null,
我正在使用Redis作为会话驱动程序,我已经在使用Redis作为缓存驱动程序,并且工作正常。
我正在挖掘所做的更改,但仍然不知道是什么引起了错误。
我解决了我的问题,而meta Referrer标签导致了该问题。
<meta name="referrer" content="origin">
我删除了那条线,它恢复了正常。但是我不认为我选择origin-when-cross-origin
选项是一种好方法
答案 0 :(得分:0)
您可以使用Facades Validator-
使用Illuminate \ Support \ Facades \ Validator;
$change= [
'code.required' => 'Code is required',
'xyz.required' => 'Please enter xyz'
];
$validator = Validator::make($request->all(), [
'code' => 'required',
'api_token' => 'required',
],$change);
//if validation fails
if ($validator->fails()) {
//redirect here
}
else{
//code
}
有帮助吗?
答案 1 :(得分:0)
您可以使用验证器
使用验证器;
$validatior = Validator::make($request->all(), [
'form_field_name1' => 'required',
'form_field_name2' => 'required',
]);
if ($validatior->fails())
{
// return to previous url
return redirect()->back()->withInput()->withErrors($validatior);
}
else
{
// Do code here
}
它工作正常。