2014-09-02 111 views
0

我在我的控制器中写了一些表单验证。Laravel电子邮件验证显示错误信息

$validator = Validator::make(Input::all(), [ 
    'email'  => 'email|required', 
    'password' => 'required' 
]); 

// If validation fails 
if($validator->fails()) { 
    // Redirect to some place 
    return Redirect::route('account-sign-in-get')->withErrors($validator)->withInput(); 
} else { 
    // Attempt to sign in 
} 

在我的意见,我有以下:

@if($errors->has('email')) 
    <div class="alert alert-warning" role="alert"> 
     {{ $errors->first('email') }} 
    </div> 
@endif 

我输入一个字符串(不是一个有效的电子邮件地址),然后当我提出,我期待的是美国错误:“电子邮件必须是有效的电子邮件地址”

相反,我得到:‘电子邮件字段是必需的’

 {{ Form::open(['route' => 'account-sign-in-post', 'role' => 'form']) }} 

       <div class="form-group"> 

       {{ Form::label('email', 'E-mail', ['for' => 'email', 'class' => 'sr-only ']) }} 
       {{ Form::text('username', NULL, ['placeholder' => 'Email', 'id' => 'email', 'class' => 'form-control']) }} 

       @if($errors->has('email')) 
        <div class="alert alert-warning" role="alert">{{ $errors->first('email') }}</div> 
       @endif 

      </div><!-- End of .form-group --> 

      <div class="form-group"> 

       {{ Form::label('password', 'Password', ['for' => 'password', 'class' => 'sr-only']) }} 
       {{ Form::password('password', ['placeholder' => 'Password', 'class' => 'form-control', 'id' => 'password']) }} 

       @if($errors->has('password')) 
        <div class="alert alert-warning" role="alert">{{ $errors->first('password') }}</div> 
       @endif 

      </div><!-- End of .form-group --> 

      {{ Form::submit('Sign in', ['class' => 'btn btn-primary btn-block']) }} 

     {{ Form::close() }} 

钍请您阅读本文。任何帮助表示赞赏:)

+0

安置自己的形式?它看起来像没有发送电子邮件输入 – Laurence 2014-09-02 04:07:38

+0

我知道我犯了错误。这是表单中的用户名..将其更改为电子邮件。奇迹般有效!谢谢你,小伙伴 :) – arkhamDev 2014-09-02 04:17:06

回答

3

错误是在窗体中。

特别是我们有一个用于用户名的文本输入。

{{ Form::text('username', NULL, ['placeholder' => 'Email', 'id' => 'email', 'class' => 'form-control']) }} 

它应该是电子邮件:

{{ Form::text('email', NULL, ['placeholder' => 'Email', 'id' => 'email', 'class' => 'form-control']) }} 
1

@arkhamDev是正确的,首先,你需要添加这些变化,比按照以下stesp。

在这里重要的规则顺序很重要。 您有以下

$validator = Validator::make(Input::all(), [ 
    'email'  => 'email|required', 
    'password' => 'required' 
]); 

请尝试以下代码

$validator = Validator::make(Input::all(), [ 
    'email'  => 'required|email', 
    'password' => 'required' 
]);