在验证失败时,Laravel会重定向到根URL

问题描述 投票:1回答:2

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

php laravel
2个回答
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
     }

这有帮助吗?


0
投票

您可以使用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
  }

它工作正常。

© www.soinside.com 2019 - 2024. All rights reserved.