2017-03-20 121 views
0

我正在laravel 5.3.30上創建一個配置文件頁面,並在提交表單時嘗試驗證數據,但提交表單後我沒有收到任何錯誤,只是刷新這一頁。表單驗證在laravel中不工作

路由文件:

Route::get('/', function() { 
    return view('main'); 
}); 

Auth::routes(); 

Route::get('/home', '[email protected]'); 

Route::get('logout', '\App\Http\Controllers\Auth\[email protected]'); 
Route::resource('profile','ProfileController'); 

檔案形式:

{!! Form::open(array('route'=>'profile.store')) !!} 
    <div class="form-group"> 
    {{Form::label('first_name','Firstname')}}<span class="required">*</span> 
{{Form::text('first_name',null,['class'=>'form-control','placeholder'=>'Enter Firstname'])}} 
     </div> 
     <div class="form-group"> 
               {{Form::label('last_name','Lastname')}}<span class="required">*</span> 
    {{Form::text('last_name',null,['class'=>'form-control','placeholder'=>'Enter Lastname'])}} 
    </div> 
    {{Form::submit('Create',array('class'=>'form-submit btn btn-success btn-block btn-lg'))}} 

{!! Form::close() !!} 

驗證在檔案控制器:

public function store(Request $request) 
    { 
     $this->validate($request,array(
      'first_name'=>'required|max:255', 
      'last_name'=>'required|max:255' 
    )); 
    } 

當我提交表單沒有填寫任何東西,它只是刷新頁面並沒有顯示任何錯誤。請提出建議。提前致謝。

回答

1

看起來你忘了從控制器發送錯誤並在視圖中打印。

這裏是控制器代碼看起來應該像

public function store(Request $request) 
{ 
    $this->validate($request,array(
      'first_name'=>'required|max:255', 
      'last_name'=>'required|max:255' 
    )); 

    // include this line incase of validation error 
    return $validator->errors()->all(); 
} 

您需要打印錯誤的觀點,以瞭解用戶

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

+0

嘿Jyadip,感謝您的解決方案,但我運行同一版本的其他項目,並且在該項目中工作良好,無需添加此代碼。我仍然在搜索它是如何工作 – vivek321

+0

做死和轉儲,並檢查什麼錯誤即將 – Jazzzzz

+0

我忘了添加消息塊顯示錯誤。謝謝 – vivek321