欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Laravel跳转回之前页面,并携带错误信息back()->withErrors(['错了'])->withInput();

程序员文章站 2022-04-25 15:47:04
...

用Laravel5.6开发项目的时候,经常碰到需要携带错误信息到上一个页面,开发web后台的时候尤其强烈。
走你

方法一:跳转到指定路由,并携带错误信息

return redirect('/admin/resource/showAddResourceView/' . $customer_id)
    ->withErrors(['此授权码已过期,请重新生成!']);
方法二:跳转到上个页面,并携带错误信息
return back()->withErrors(['此**码已与该用户绑定过!']);

方法三:validate验证(这种情况应该是最多的)

我们在提交表单的时候,进入控制器的第一步就是验证输入的参数符不符合我们的要求,如果不符合,就直接带着输入、错误信息返回到上一个页面,这个是框架自动完成的。具体例子:

$request = $request->all();
$rules = [
    'user_name' => 'unique:customer|min:4|max:255',
    'email' => 'email|min:5|max:64|required_without:user_name',
    'customer_type' => 'required|integer',
];
$messages = [
    'user_name.unique' => '用户名已存在!',
    'user_name.max' => '用户名长度应小于255个字符!',
    'email.required_without' => '邮箱或者用户名必须至少填写一个!',
    'customer_type.required' => '用户类型必填!',
];
$this->validate($request, $rules, $messages);

//或者 $validate = Validator::make($input, $rule, $message);

然后在视图里面引入公共的错误信息:

写一个页面可以引入你的html 中
D:\phpStudy\WWW\xxx\resources\views\admin\error.blade.php

<div class="form-group">
    @if (count($errors) > 0)
        <div class="alert alert-danger">
            <ul style="color:#fff;">
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
            </ul>
        </div>
    @endif
</div>

例如:

@extends('admin.master')
@section('css')
@parent
<link href="{{ asset('css/plugins/iCheck/custom.css') }}" rel="stylesheet">
@endsection
@section('content')
{{-- {{dd($data)}} --}}
<div class="wrapper wrapper-content animated fadeInRight">
@include('admin.error')  //引入显示的错误模板

如果还需要自定义错误信息,并且把之前传过来的值返回到上一个视图,还需要加个withInput;

 if ($res['success'] != 0){
          return   back()->withErrors([$res['msg']])->withInput();
  }

Laravel跳转回之前页面,并携带错误信息back()->withErrors(['错了'])->withInput();