【问题标题】:Input Validation in Laravel won't show errorsLaravel 中的输入验证不会显示错误
【发布时间】:2016-04-09 13:33:07
【问题描述】:

我是 Laravel 的新手,正在尝试验证表单的输入。我使用刀片模板引擎。验证有效,因为它不会将数据插入数据库,但错误也不会出现。这是我为我的注册表单所做的:

@section('content')
    @if(count($errors)>0)
        <div class="row">
            <div class="col-md-6">
                <ul>
                    @foreach($errors->all() as $error)
                        <li>{{$error}}</li>
                    @endforeach
                </ul>
            </div>
        </div>
    @endif
    <div class="row">
        <div class="col-md-6">
            <h3>Sign Up</h3>
            <form action="{{ route('signup') }}" method="post">
                <div class="form-group">
                    <label for="username">Username :</label>
                    <input class="form-control" type="text" name="username" id="username" >
                </div>
                <div class="form-group">
                    <label for="name">Name :</label>
                    <input class="form-control" type="text" name="name" id="name">
                </div>
                <div class="form-group">
                    <label for="email">E-Mail :</label>
                    <input class="form-control" type="text" name="email" id="email">
                </div>
                <div class="form-group">
                    <label for="password">Password :</label>
                    <input class="form-control" type="password" name="password" id="password">
                </div>
                <button type="submit" class="btn btn-primary">Submit</button>
                <input type="hidden" name="_token" value="{{ Session::token() }}">
            </form>
        </div>
@endsection

这也是我的登录信息,我在其中验证字段并让用户登录:

public function postSignUp(Request $request)
    {
        $this->validate($request, [
            'username' => 'required|unique:users|max:20|min:2',
            'name' => 'required|max:30|min:2',
            'email' => 'required|email|unique:users|max:50|min:5',
            'password' => 'required|min:4'
        ]);

        $username = $request["username"];
        $name = $request["name"];
        $email = $request["email"];
        $password = bcrypt($request["password"]);

        $user = new User();
        $user->username = $username;
        $user->name = $name;
        $user->email = $email;
        $user->password = $password;
        $user->save();
        Auth::login($user);
        return redirect()->route('dashboard');
    }

由于某种原因,当我输入了已使用的用户名或错误的电子邮件并单击提交按钮时,它会将我重定向回注册页面,这是预期的功能,但它根本不显示错误。

编辑:这是我的 route.php:

Route::group(['middleware' => ['web']], function (){
    Route::get('/', function () {
        return view('welcome');
    });

    Route::post('/signup', [
        'uses' => 'UserController@postSignUp',
        'as' => 'signup'
    ]);

    Route::post('/signin', [
            'uses' => 'UserController@postSignIn',
            'as' => 'signin'
    ]);

    Route::get('/dashboard', [
        'uses' => 'UserController@getDashboard',
        'as' => 'dashboard'
    ]);
});

【问题讨论】:

标签: php validation laravel


【解决方案1】:

你可以在你的刀片中试试这个:

@section('content')
    @if($errors->any())
        <div class="row">
            <div class="col-md-6">
                <ul>
                    @foreach($errors->all() as $error)
                        <li>{{$error}}</li>
                    @endforeach
                </ul>
            </div>
        </div>
    @endif
    <div class="row">
        <div class="col-md-6">
            <h3>Sign Up</h3>
            <form action="{{ route('signup') }}" method="post">
                <div class="form-group">
                    <label for="username">Username :</label>
                    <input class="form-control" type="text" name="username" id="username" >
                </div>
                <div class="form-group">
                    <label for="name">Name :</label>
                    <input class="form-control" type="text" name="name" id="name">
                </div>
                <div class="form-group">
                    <label for="email">E-Mail :</label>
                    <input class="form-control" type="text" name="email" id="email">
                </div>
                <div class="form-group">
                    <label for="password">Password :</label>
                    <input class="form-control" type="password" name="password" id="password">
                </div>
                <button type="submit" class="btn btn-primary">Submit</button>
                <input type="hidden" name="_token" value="{{ Session::token() }}">
            </form>
        </div>
@endsection

【讨论】:

    猜你喜欢
    • 2016-10-31
    • 2015-04-04
    • 2020-02-10
    • 2016-06-28
    • 2018-12-05
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 2012-12-14
    相关资源
    最近更新 更多