2017-01-02 246 views
2

我在驗證表單後嘗試顯示錯誤。

我使用的觀點驗證碼:

@if($errors->has()) 
      @foreach ($errors->all() as $error) 
       <div>{{ $error }}</div> 
      @endforeach 
     @endif 

,並在控制器:

public function searchActivity(Request $request){ 

    $this->validate($request, [ 
     'search' => 'required', 
     'date' => 'required_with:search|required|date|after:yesterday' 
    ]); 

    return view(App::getLocale() . '.activities.ActivityResults'); 

} 

,但不工作。

會發生什麼情況?

注:我使用Laravel 5.3。

+0

請出示路線文件的內容。 –

+0

以上將拋出一個錯誤,因爲has()需要一個字段名。 –

+0

如果您收到'Undefined variable:$ error',請顯示堆棧跟蹤。 –

回答

3

的已經可以被使用的方法來確定如果對於給定字段存在任何錯誤消息 :

if ($errors->has('email')) { 
    // 
} 

因此,我們可以檢查像

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

參考鏈接:https://laravel.com/docs/5.3/validation

0

使用

@foreach($errors as $error) 

{{$錯誤}}}

@endforeach

我使用這個語法錯誤

+0

你可以用它來寫。 –

1

@if($errors->has()) 代替,如果這能幫助使用@if($errors->any())此代碼適用於我

@if(!empty($errors)) 
    @if($errors->any()) 
     <ul class="alert alert-danger" style="list-style-type: none"> 
      @foreach($errors->all() as $error) 
       <li>{!! $error !!}</li> 
      @endforeach 
     </ul> 
    @endif 
@endif 
0

$errors變量提供給Illuminate\View\Middleware\ShareErrorsFromSession中間件中的視圖。該中間件默認包含在web中間件組中。

如果您的路由不使用web中間件組,請確保它所在的組包含此中間件(以及Illuminate\Session\Middleware\StartSession,因爲錯誤存儲在會話中)。

4

我認爲最好使用像這樣的前端驗證器jqueryValidator。 因爲要驗證此表單,您必須關閉瀏覽器中的Javascript。然後,它有時會損壞您的工作,以便在您的項目中加載數據表或相關的js作品。

但是,如果你正在使用後端驗證,這可能會幫助你更好地理解它。

在此,在葉片:

@if(!$errors->isEmpty()) 
    <div class="alert alert-danger "> 
     <a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a> 

      <div class="error"> 
       {{[email protected](isset($errors))--}} 
        {{ $errors->first('email') }} 
        {{ $errors->first('password') }} 
        {{ $errors->first('confirmPassword') }} 
        {{ $errors->first('FirstName') }} 
        {{ $errors->first('LastName') }} 
        {{ $errors->first('JoinDate') }} 
        {{ $errors->first('dob') }} 
      </div> 
    </div> 
    @endif 

而在規則內所創建的請求類()函數

return [ 'email' => 'required|between:3,64|email|unique:employees', 'password' =>'required|min:5|max:10', 'confirmPassword' =>'required|same:password', 'FirstName' =>'required', 'JoinDate' =>'required|after:dob', 'LastName' =>'required', 'dob' =>'required', ];