Laravel 5.2表单验证重定向问题

时间:2016-04-05 09:27:00

标签: 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',
    ]);

    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>

用户应将电子邮件放在电子邮件字段中,然后通过上面的代码进行验证。问题是用户永远不会重定向回主页

1 个答案:

答案 0 :(得分:0)

您可以使用:

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

如果验证失败,Laravel将自动将所有错误和所有输入重定向到上一页,而不是创建新的验证器。