Php Laravel 5.2表单验证重定向问题

Php Laravel 5.2表单验证重定向问题,php,laravel,laravel-5.2,Php,Laravel,Laravel 5.2,当表单验证失败时,我对重定向有一些问题。 我使用的代码如下所示: // -> use Illuminate\Support\Facades\Validator; public function subscribe(Request $request) { $validator = Validator::make($request->all(), [ 'email' => 'required|unique:subscriber|email', ]

当表单验证失败时,我对重定向有一些问题。 我使用的代码如下所示:

// -> use Illuminate\Support\Facades\Validator;

 public function subscribe(Request $request)
{
    $validator = Validator::make($request->all(), [
        'email' => 'required|unique:subscriber|email',
    ]);

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

    $email = $request->input('email');
    $randomId = $this->generateRandomUserId();
    $subscriberSource = $request->input('utm_source');

   // ... Save user
}
这是我的表格:

 <form class="form-horizontal" role="form" method="POST" action="{{ url('/register') }}">
                            {!! csrf_field() !!}

                            <div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
                                <label class="col-md-4 control-label">Email</label>

                                <div class="col-md-6">
                                    <input type="email" class="form-control" name="email"
                                           value="{{ $email or old('email') }}">

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

                            <div class="form-group">
                                <div class="col-md-6 col-md-offset-4">
                                    <button type="submit" class="btn btn-primary">
                                        <i class="fa fa-btn fa-refresh"></i>Subscribe now
                                    </button>
                                </div>
                            </div>
                        </form>

{!!csrf_field()!!}
电子邮件
@如果(计数($errors)>0)
    @foreach($errors->all()作为$error)
  • {{$error}}
  • @endforeach
@恩迪夫 现在订阅
用户应该将他们的电子邮件放在email字段中,然后通过上面的代码进行验证。问题是用户永远不会重定向回主页

您可以使用:

$this->validate($request, [
        'email' => 'required|unique:subscriber|email',
]);
如果验证失败,Laravel将自动将所有错误和所有输入重定向回上一页,而不是创建新的验证程序istance。

您可以使用:

$this->validate($request, [
        'email' => 'required|unique:subscriber|email',
]);

不创建新的验证程序istance,因此如果验证失败,Laravel将自动将所有错误和所有输入重定向回上一页。

尝试使用
redirect()->back()->withErrors($validator)->withInput()我只在验证程序失败时看到重定向?因此,如果表单验证了它,那么它就没有去向了?@StefanoGroenland,这是正确的。我正在测试验证失败的情况,输入无效数据。啊,好的,你是否已经修复了它?尝试使用
redirect()->back()->withErrors($validator)->withInput()我只在验证程序失败时看到重定向?因此,如果表单验证了它,那么它就没有去向了?@StefanoGroenland,这是正确的。我正在测试验证失败的案例,输入无效数据。啊,好的,你是否已经修复了它?