2013-07-13 50 views
1

你好,我在一個項目中與laravel 4一起工作,這不是第一次,但我有一個以前從未有過的問題。Laravel 4強制性參數錯誤

Some mandatory parameters are missing ("key") to generate a URL for route "register". 

我不知道如何解決它我試了一下我想出來但沒有結果。這是我的路線:

Route::get('register/{key}',array('before'=>'guest','as'=>'register','uses' => '[email protected]')); 
Route::post('register/{key}',array('before'=>'csrf','uses'=>'[email protected]')); 

而且我的控制器: 類UserController的擴展BaseController {

public function getRegistro($key = null) 
{ 
    $invites = Invite::lists('key'); 
    if (in_array($key, $invites)) { 
     return View::make('home.register') 
     ->with('title','Register') 
     ->with('key',$key); 
    }else{ 
     Notification::error('Not a valid key to register.'); 
     return Redirect::route('home'); 
    } 
} 

public function postStore() 
{ 
    $validator = Validator::make(
     array(
      'username' => Input::get('username'), 
      'password'=>Input::get('password'), 
      'password_confirmation'=>Input::get('password_confirmation'), 
      'email'=>Input::get('email'), 
      'ubi'=>Input::get('ubi'), 
      'bio'=>Input::get('bio'), 
     ), 
     array(
      'username' => 'required|unique:users|', 
      'password'=> 'required|min:6|confirmed', 
      'password_confirmation'=> 'required|min:6', 
      'email'=> 'required|unique:users|email', 
      'ubi'=> 'required|min:5', 
      'bio'=>'required|min:10', 
     ) 
    ); 
    if ($validator->fails()) 
    { 
     Notification::error($validator->messages()); 
     return Redirect::route('register'); 
    }else{ 
     $user = new User; 

     $user->username = Input::get('username'); 
     $user->email = Input::get('email'); 
     $user->password = Input::get('password'); 
     $user->save(); 
    } 

當我發送一個空的形式問題發生,但是當我把信息例如我的用戶名布魯斯我得到這個錯誤:

Method [validateBruce] does not exist. 

請幫

回答

2

您的指定路線(register)有一個必需的參數({key}),當您發佈表單失敗時,您嘗試將該指定路線重定向至無鍵。

return Redirect::route('register'); 

您需要提供一鍵重定向到,例如:

return Redirect::route('register', array('your-key')); 

如果不需要此參數,那麼你可以放置一個問號?右大括號之前。

Route::get('register/{key?}', ...); 

該參數現在是可選的。

至於你的第二個錯誤,我不知道。您是否使用某種模型驗證程序來驗證您保存的時間?我試着從用戶名規則數組中刪除額外的管道|

+0

好吧,我明白錯誤謝謝 –