php - 在 laravel 5.3 的一页中注册和登录表单

标签 php forms laravel error-handling

我正在创建一个页面,在一个页面中注册和登录。
我的代码看起来像这样

<div class="w3-display-container w3-white">
    <div style="white-space:nowrap;" class="container">
        <h2>Already have an account?</h2><hr>
        <div class="col-md-8 col-md-offset-2 w3-margin-bottom">
            {!! Form::open(['route' => 'login', 'method' => 'POST']) !!}
                <div class="form-group {{ $errors->has('email') ? 'has-error has-feedback' : '' }}">
                    {{ Form::label('email', 'Enter Your Email...', ['class' => 'control-label']) }}
                    {{ Form::email('email', null, ['class' => 'form-control', 'placeholder' => 'email...', 'value' => old('email')]) }}
                    <span class="{{ $errors->has('email') ? 'glyphicon glyphicon-remove form-control-feedback' : '' }}"></span>
                </div>
                <div class="form-group {{ $errors->has('password') ? 'has-error has-feedback' : '' }}">
                    {{ Form::label('password', 'Enter Your Password...', ['class' => 'control-label']) }}
                    {{ Form::password('password', ['class' => 'form-control', 'placeholder' => 'password...']) }}
                    <span class="{{ $errors->has('password') ? 'glyphicon glyphicon-remove form-control-feedback' : '' }}"></span>
                </div>
                {{ Form::submit('Log in', ['class' => 'btn btn-success w3-margin-top']) }}
            {!! Form::close() !!}
        </div>
    </div>
</div>
<div class="w3-display-container w3-white">
    <div style="white-space:nowrap;" class="container">
        <h2>New Here?</h2><hr>
        <div class="col-md-8 col-md-offset-2 w3-margin-bottom">
            {!! Form::open(['route' => 'register']) !!}
                <div class="form-group {{ $errors->has('name') ? 'has-error has-feedback' : '' }}">
                    {{ Form::label('name', 'Username...', ['class' => 'control-label']) }}
                    {{ Form::text('name', null, ['class' => 'form-control', 'placeholder' => 'username...']) }}
                    <span class="{{ $errors->has('name') ? 'glyphicon glyphicon-remove form-control-feedback' : '' }}"></span>
                </div>
                <div class="form-group {{ $errors->has('email') ? 'has-error has-feedback' : '' }}">
                    {{ Form::label('email', 'Email...', ['class' => 'control-label']) }}
                    {{ Form::email('email', null, ['class' => 'form-control', 'placeholder' => 'email...']) }}
                    <span class="{{ $errors->has('email') ? 'glyphicon glyphicon-remove form-control-feedback' : '' }}"></span>
                </div>
                <div class="form-group {{ $errors->has('password') ? 'has-error has-feedback' : '' }}">
                    {{ Form::label('password', 'Password...', ['class' => 'control-label']) }}
                    {{ Form::password('password', ['class' => 'form-control', 'placeholder' => 'passsword...']) }}
                    <span class="{{ $errors->has('password') ? 'glyphicon glyphicon-remove form-control-feedback' : '' }}"></span>
                </div>
                <div class="form-group {{ $errors->has('password') ? 'has-error has-feedback' : '' }}">
                    {{ Form::label('password_confirmation', 'Confirm Password...', ['class' => 'control-label']) }}
                    {{ Form::password('password_confirmation', ['class' => 'form-control', 'placeholder' => 'confirm password...']) }}
                    <span class="{{ $errors->has('password') ? 'glyphicon glyphicon-remove form-control-feedback' : '' }}"></span>
                </div>
                {{ Form::submit('Sign Up', ['class' => 'btn btn-success w3-margin-top']) }}
            {!! Form::close() !!}
        </div>
    </div>
</div>

我使用 bootstrap 和 w3schools 进行样式设计。

我遇到的问题是,当我提交任何一个输入为空的表单时,这两个表单都会给我错误。
也就是说(例如),当我提交带有空电子邮件和密码字段的登录表单时,错误显示在登录表单和注册表中,该字段为空。
我该如何解决? 我想以不同的方式显示错误。
如果对我的代码或问题有任何疑问,请在下方评论。

我什至看了this寻求帮助,但它是 laravel 5.2,laravel 5.3 具有不同的身份验证路由系统

最佳答案

那是因为你在两者上都显示了错误 {{ $errors->has('email') ? 'has-error has-feedback' : '' }} 该代码字符串同时存在于注册和登录表单中,因此错误将同时显示在它们上。

一个解决方案可能是使用 PHP 和 jQuery/JavaScript 自己创建验证,这样您就可以完全自定义错误等。这会花费更长的时间并且稍微难一点,但它是可行的

关于php - 在 laravel 5.3 的一页中注册和登录表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40561351/

相关文章:

php - Codeigniter 调用非对象上的成员函数 num_rows()

php - php中的 session 和cookie有什么区别?

php - 如何使用 shuffle 解决随机问题

Django 外键模型表单

laravel - 更改 Laravel 中的 Controller 模型模板

PHP ORM 自动模式同步

php - 如何在 PHP 中从 PDF 表单中提取字段值

php - 从 Symfony2 中的 Controller 访问集合表单字段

mysql - Laravel MySQL 从嵌套的 JSON 列中选择

php - 如何为 Laravel 路由参数提供选择