Laravel重定向到根URL而不是先前的验证失败

时间:2019-02-18 11:16:32

标签: php laravel

我的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选项是一种好方法

2 个答案:

答案 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
  }

它工作正常。