laravel 使用重定向方法时,不会将错误发送到视图

vjrehmav  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(104)

当我使用return view('login')->withErrors($validator->errors());时,我得到返回的错误(如果有的话)。现在,如果我使用Redirect方法/类,它不会返回数据。
我需要使用重定向。我测试了它在几个方面,经历了不同的错误,但没有工作。我读了文档,博客和我所做的一切都不工作。
我已经尝试了return Redirect::back()->withErrors(['msg' => 'The Message']);和blade '{{session()-〉get('msg')}},但没有任何结果。
我需要一些帮助,因为我已经尝试了很多事情,没有工作。
控制器:

public function checkUserExists(Request $request)
{
        $email = $request->input('email');

        $validator = Validator::make(
            $request->all(), 
            [
                'email' => ['required', 'max:255', 'string', 'email'],
                'g-recaptcha-response' => ['required', new RecaptchaRule],
            ],
            $this->messages
        );

        if ($validator->fails()) {
            // return view('login')->withErrors($validator->errors());

            // return Redirect::back()->withErrors(['msg' => 'The Message']);
            return Redirect::route('login')->withErrors($validator->errors());
            // return Redirect::route('login')->withErrors($validator);
            // return redirect()->back()->withErrors($validator->errors());
            // return Redirect::back()->withErrors($validator)->withInput();
        }
   ...

}

现在我的桶里只有这个:

{{-- Errors --}}
@if ($errors->any())
    <div class="alert alert-danger" role="alert">
      <ul>
        @foreach ($errors->all() as $key => $error)
          <li>
           {{ $error }}
          </li>
        @endforeach
      </ul>
    </div>
@endif

Laravel版本:"laravel/框架":"^7.29",

jv4diomz

jv4diomz1#

尝试以下代码将错误传递回视图:

public function checkUserExists(Request $request)
{
    $email = $request->input('email');

    $validator = Validator::make(
        $request->all(), 
        [
            'email' => ['required', 'max:255', 'string', 'email'],
            'g-recaptcha-response' => ['required', new RecaptchaRule],
        ],
        $this->messages
    );

    if ($validator->fails()) {
        return redirect()->back()->withErrors($validator)->withInput();
    }

   ...
}

在您的视图中,您可以使用和访问错误(& I):

{{-- Errors --}}
@if ($errors->any())
    <div class="alert alert-danger" role="alert">
      <ul>
        @foreach ($errors->all() as $error)
          <li>{{ $error }}</li>
        @endforeach
      </ul>
    </div>
@endif

如果您的视图是正确的,并且您在redirect()->back()方法中使用了正确的视图路径,则此操作应该有效

相关问题