我的Laravel应用程序遇到了一个关键问题。验证失败时,Laravel将请求重定向到根URL,而不是之前的。我尝试使用FormRequest但仍然给出相同的结果。
然后我检查了以前的URL(使用url()->previous()
方法)和不同的路由,每次返回根URL ...
这是会话配置文件。 (据我所知,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
选项的好方法
你可以使用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
}
这有帮助吗?
您可以使用Validator
使用Validator;
$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
}
它工作正常。