Laravel 5.6 - 验证发送到索引,而不是前一页有错误

时间:2018-03-09 18:22:04

标签: php laravel-5.6

在register.blade.php中提交表单时,您将被重定向回索引,而不是返回到显示错误的原始页面。我不知道为什么会这样。

调用控制器中的create方法,但在验证后执行停止(如预期的那样)。那里的索引没有重定向,所以我不确定为什么选择回到那里。我的理解是默认重定向到有错误的表单。

路线:

scanf("%s",&my_array [i])

register.blade.php

<?php

Route::get('/', function () {
    return view('pages.index');
});

Route::get('/home', function () {
    return redirect('/');
});

// Login //
Route::get('/user/login', function () {
    return view('pages.user.login');
});
Route::post('/user/login', 'UserController@store');

// Register //
Route::get('/user/register', function () {
    return view('pages.user.register');
});
Route::post('/user/register', 'UserController@create');
Route::post('/user/register', 'UserController@create');

// Logout //
Route::get('/user/logout', 'UserController@destroy');

errors.blade.php

@extends ('layout.master')

@section ('content')

<div class="row">
    <div class="col-md-12">
        <h1 align="center">User Registration</h1>
        <br>
        <form method="POST" action="/user/register">

            {{ csrf_field() }}

            <div class="form-group row">
                <label for="name" class="col-sm-2 col-form-label">Full Name</label>
                <div class="col-sm-10">
                    <input name="name" type="text" class="form-control" placeholder="Full Name">
                </div>
            </div>

            <div class="form-group row">
                <label for="phonenumber" class="col-sm-2 col-form-label">Phone Number</label>
                <div class="col-sm-4">
                    <input name="phonenumber" type="tel" class="form-control" placeholder="Phone Number">
                </div>

                <label for="password" class="col-sm-2 col-form-label">Password</label>
                <div class="col-sm-4">
                    <input name="password" type="password" id="password" class="form-control">
                </div>
            </div>

            <div class="form-group row">
                <label for="email" class="col-sm-2 col-form-label">Email</label>
                <div class="col-sm-4">
                    <input name="email" type="email" class="form-control" placeholder="Email">
                </div>

                <label for="password_confirmation" class="col-sm-2 col-form-label">Confirm Password</label>
                <div class="col-sm-4">
                    <input name="password_confirmation" type="password" id="password_confirmation" class="form-control">
                </div>
            </div>

            <div class="form-group row">
                <label for="street_address" class="col-sm-2 col-form-label">Street Address</label>
                <div class="col-sm-10">
                    <input name="street_address" type="text" class="form-control" placeholder="Street Address">
                </div>
            </div>

            <div class="form-group row">
                <label for="city" class="col-sm-2 col-form-label">City / Town</label>
                <div class="col-sm-10">
                    <input name="city" type="text" class="form-control" placeholder="City / Town">
                </div>
            </div>

            <div class="form-group row">
                <label for="region" class="col-sm-2 col-form-label">State / Province / Region</label>
                <div class="col-sm-10">
                    <input name="region" type="text" class="form-control" placeholder="State / Province / Region">
                </div>
            </div>

            <div class="form-group row">
                <label for="zip" class="col-sm-2 col-form-label">Postal Code</label>
                <div class="col-sm-10">
                    <input name="zip" type="text" class="form-control" placeholder="Postal Code">
                </div>
            </div>

            <div class="text-center">
                <button type="submit" class="btn btn-primary text-center">Submit</button>
            </div>

        </form>

        <br>

        @include('layout.errors')
    </div>
</div>

@endsection

控制器:

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

3 个答案:

答案 0 :(得分:2)

我遇到了完全相同的问题。为了详细说明OP的自我解答,此问题是由Firefox的“ network.http.referer.trimmingPolicy”配置键控制的,该配置键控制发送的“ Origin”标头。

在我的情况下,此密钥设置为(int)2,这使浏览器仅发送网站地址,而没有URI。

将密钥更改为(int)0可以解决此问题(可以尝试将其设置为(int)1)。

答案 1 :(得分:0)

问题在于我的Firefox配置设置。这就是去私人......

答案 2 :(得分:0)

对于某些可能会遇到此问题的人。我有一个referrer策略设置的content="origin"元标记。

这样做可以使重定向始终引用您的“来源”。

<meta name="referrer" content="origin">更改为<meta name="referrer" content="origin-when-cross-origin">

article中的更多信息。