2013-08-02 40 views
0

確認字段我不能找到一個辦法讓Laravel突出顯示正確的領域,當_confirmation字段不正確。Laravel - 高亮錯誤

使用引導佈局,我收到一封電子郵件,並email_confirmation場在我的形式是這樣的:

<div class="control-group {{$errors->has('email') ? 'error' : ''}}"> 
    {{ Form::label('email', 'Email', array('class' => 'control-label'))}} 
    <div class="controls"> 
     {{ Form::email('email', Input::old('email'));}} 
     {{ $errors->first('email', Form::block_help(':message')) }} 
    </div> 
</div> 
<div class="control-group {{$errors->has('email_confirmation') ? 'error' : ''}}"> 
    {{ Form::label('email_confirmation', 'Confirm Email', array('class' => 'control-label'))}} 
    <div class="controls"> 
     {{ Form::email('email_confirmation', Input::old('email_confirmation'));}} 
     {{ $errors->first('email_confirmation', Form::block_help(':message')) }} 
    </div> 
</div> 

因此,如果用戶將在一個無效的電子郵件地址,然後在「電子郵件」字段將有一個錯誤附加到它,正確的標籤/字段將突出顯示。

但是,如果用戶已經在第一個字段中輸入一個有效的/正確的電子郵件地址,但得到確認錯誤 - 返回的錯誤依然爲「電子郵件」字段,而不是email_confirmed領域。

對我來說,看起來怪怪的時候,當錯誤實際上是與email_confirmation場電子郵件字段中突出顯示。

據我可以從this stackoverflow question明白,我大概可以做這樣的事情

{{$errors->first('email', ':message') == 'Please confirm your email address correctly.' ? 'error' : ''}} 

這將工作,但問題是,我運行一個多語種的網站,這樣的:消息得到返回將是許多可能性之一。

我想我可以寫一個函數來比較:消息針對每種語言的消息的數組,但我想我會檢查是否有去它更簡單的方法。

乾杯!

+0

laravel有一個內置的本地化類,你可以與表單驗證使用http://laravel.com/docs/validation#localization – astroanu

回答

-2

或者你可以只打印所有錯誤消息某處

$messages = $validator->messages(); 
    echo '<ul>'; 
    foreach ($messages->all() as $message) 
     { 
      echo '<li>'.$message.'</li>'; 
     } 
    echo '</ul>'; 
+0

是的,我們已經決定在登記表上有錯誤,做一個通知,但我的設計師反對所有錯誤的完整列表,並希望內聯錯誤。這不是一個biggy(其實我已經完全忘記了我已經問過這個問題!) – alexleonard

+0

確定:d 你仍然可以批准我的回答是公認的,如果ü想:d – aimiliano

+0

@aimiliano你沒有回答這個問題。你正在回答提問者提出的問題。他們希望它與表單域內聯,而不是列表。 – Jonathan

1

我這是怎麼顯示內嵌錯誤,如果標題字段爲空:

<div class="form-group @if ($errors->has('title')) has-error @endif"> 
    {{ Form::label('title', 'Title') }} 
    {{ Form::text('title', null, array('class' => 'form-control')) }} 
    @if ($errors->has('title')) <p class="help-block">{{ $errors->first('title') }}</p> @endif 
</div> 

而我的驗證規則:

public static $rules = array(
    'title' => 'required', 
); 

使用Laravel 4和Bootstrap 3.