2015-01-12 89 views
0

我正在測試這個新框架(Laravel),到現在爲止,我正在關注他們在文檔中提供的那些示例。一切都很順利,直到我有這個問題。Laravel withError函數不起作用

我打電話給Redirect::to('\signup')->withErrors($validator->messages());但它沒有顯示任何東西 但如果我只是打印它像print_r($validator->messages());它顯示我的錯誤。請幫助我,告訴我我哪裏出錯了?

控制器

public function registerUser(){ 
    $validator = Validator::make(Input::all(),array(
      'username' => 'required|email|unique:user', 
      'password' => 'required|min:8', 
      'fullname' => 'required' 
     ) 
    ); 
    if($validator->fails()){ 

     return Redirect::to('signup')->withInput()->withErrors($validator); 
    }else{ 
     return Redirect::route('user'); 
    } 

} 

路線 Route::get('/signup',array('as'=>'signup', 'uses'=>'[email protected]'));

查看

<?php print_r($errors) ; ?> 
+0

你可以粘貼代碼如何顯示錯誤? –

+0

你說在你調用withErrors($ validator-> messages())''的問題時,你在調用'withErrors($ validator)'''的代碼示例 - 這是什麼? –

+0

我已經嘗試使用錯誤($ validator)和withErrors($ validator-> messages()),他們都沒有工作.. @nhbjgfcxhgchg – awaistoor

回答

0

問題是,我改變了secure選項設置爲true在session文件(在config文件夾),並沒有https本地服務器上測試它。這就是爲什麼我的錯誤沒有顯示出來。

3

下面是來自Laravel網站的相關信息:

Route::post('register', function() 
{ 
    $rules = array(...); 

    $validator = Validator::make(Input::all(), $rules); 

    if ($validator->fails()) 
    { 
     return Redirect::to('register')->withErrors($validator); 
    } 
}); 

你可以從刀片這樣的參考...

<?php echo $errors->first('email'); ?> 

注意如何$錯誤是一個對象?您可以撥打print_r($errors),這可能不會產生非常有用的輸出。

嘗試......

<?php 
    var_dump($errors->first('username')); 
    var_dump($errors->first('password')); 
    var_dump($errors->first('email')); 
?> 

另外:unique:用戶驗證可能應該unique:user,username。使用數據庫表名稱和列名稱,而不是模型值。

注:如果您在瀏覽器中測試這一點,你可能要考慮使用Clockwork,它可以讓你看到從瀏覽器會話信息,而的print_r /調用的var_dump。

+0

先生感謝您的回覆,但我發現我的問題..我改變了會話文件(在配置文件夾中)secure = true,並在本地web服務器上測試它沒有HTTPS,所以這就是爲什麼我沒有收到答覆,因爲錯誤消息存儲在會話中。但仍然感謝您的詳細答案和其他一些你指出的東西,非常感謝:) – awaistoor

+0

[Laravel Debugbar](https://github.com/barryvdh/laravel-debugbar)也非常有用:D –