2016-04-10 110 views
1

我正在使用laravel 5構建用戶日誌記錄頁面,並使用validate()函數驗證電子郵件,密碼和first_name字段。Laravel驗證返回空錯誤數組

用戶控制器

class UserController extends Controller{ 

    public function getDashBoard(){ 
     return view('dashboard'); 
    } 
    public function postSignUp(Request $request){ 

     $this->validate($request,[ 
      'email'=>'required|email|unique:users', 
      'first_name'=>'required|max:120', 
      'password'=>'required:min:4' 
     ]); 

     $user=new User(); 
     $user->email=$request['email'];; 
     $user->first_name=$request['first_name']; 
     $user->password=bcrypt($request['password']);; 
     $user->save(); 
     Auth::login($user); 
     return redirect()->route('dashboard'); 
    } 
} 

此功能正常工作,當數據是無效的,它返回到前一頁。我使用下面的代碼在welcome.blade.php文件中顯示錯誤消息。

@if(count($errors)>0) 
     <p>Error occurred</p>    
    @endif 

在驗證錯誤的情況下,BT是不顯示上面的錯誤消息(計數($錯誤)總是等於0,當我檢查),它返回到歡迎頁面。這裏有什麼問題?

routes.php文件

Route::group(['middleware'=>['web']],function(){ 

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

    Route::post('/signup',['uses'=>'[email protected]','as'=>'signup']); 

    Route::post('/signin',['uses'=>'[email protected]','as'=>'signin']); 

    Route::get('/dashboard',[ 
     'uses'=>'[email protected]','as'=>'dashboard' 
    ]); 
}); 
+0

你試過'@if($錯誤 - >有() )'而不是數它? – henriale

+0

它也不起作用 – chamathabeysinghe

+0

'$ errors'的類型是什麼?它應該是'ViewErrorBag'的一個實例。 – henriale

回答

0

試試這個:

$validator = Validator::make($request->all(), [ 
     'email'=>'required|email|unique:users', 
     'first_name'=>'required|max:120', 
     'password'=>'required:min:4' 
    ]); 

    if ($validator->fails()) { 
     return redirect('/signin') 
        ->withErrors($validator) 
        ->withInput(); 
    } 

    $user=new User(); 
    $user->email=$request['email'];; 
    $user->first_name=$request['first_name']; 
    $user->password=bcrypt($request['password']);; 
    $user->save(); 
    Auth::login($user); 
    return redirect()->route('dashboard'); 

讓我知道,如果它可以幫助你

+0

nop仍然錯誤數組是空的 – chamathabeysinghe

+0

嘗試設置: 返回重定向('/') - > withErrors($ validator) - > withInput(); 而不是上面的代碼。 – BKF