2014-09-23 85 views
0

我的問題是,當我提交我的表單時,它通過get方法。 工作流是表單提交 - >獲取 - >發佈,它應該是表單提交 - >發佈。 我需要在我的get方法的條件來驗證德數組不爲nullLaravel 4表單發佈問題

我的代碼: 路線

Route::get('/pre-register-birth',array('as'=>'pre-register-birth', 'uses'=>'[email protected]')); 
    Route::post('/pre-register-birth', '[email protected]'); 

查看

{{ Form::open(array('method' => 'POST', 'action' => '[email protected]', 
     'class'=>'form-horizontal', 'id'=>'regist-form')) }} 

控制器

public function preRegisterBirthData() 
{ 
    $user = Session::get('user'); 

    if ($user) 
     return View::make('user/pre-register-birth')->with('tempUser', $user); 
    else 
     return Redirect::Route('pre-register-get'); 
} 

public function preRegisterBirthDataPost() 
{ 
    $validator = Validator::make(Input::all(), 
     array(
      'birthplace' => 'required|max:100', 
      'birthdate' => 'required|max:100|date|date_format:Y-m-d' 
     ) 
    ); 
    if ($validator->fails()) { 
     return Redirect::Route('pre-register-birth') 
      ->withErrors($validator) 
      ->withInput(); 
    } else { 
     $user = array(
      'email' => Input::get('email'), 
      'pass' => Input::get('pass'), 
      'name' => Input::get('name'), 
      'surname' => Input::get('surname'), 
      'birthplace' => Input::get('birthplace'), 
      'birthdate' => Input::get('birthdate'), 
      'hourKnow' => Input::get('hourKnow'), 
      'dataCorrect' => Input::get('dataCorrect'), 
      'news' => Input::get('news'), 
     ); 
     return Redirect::Route('pre-register-terms')->with('user', $user); 
    } 
} 
+0

請你也可以添加你生成的HTML嗎? (在瀏覽器中查看源代碼時的HTML) – Bowersbros 2014-09-23 13:15:11

+0

將表單中的'action'改爲'/ pre-register-birth' Laravel將處理它的一個post請求,查看你的路由,並將它發送到你想要的控制器方法。是否有任何理由不使用標準的Laravel控制器方法並進行設置? – DavidT 2014-09-23 13:17:28

+0

您的解決方案無法正常工作,您對標準Laravel控制器方法有何建議和設置。 – 2014-09-23 13:41:55

回答

0

我想我以前見過這個問題。 Laravel不管是什麼奇怪的原因不喜歡action => ...所以,從改變你的形式聲明B:

// A 
{{ Form::open(array('method' => 'POST', 'action' => '[email protected]', 
    'class'=>'form-horizontal', 'id'=>'regist-form')) }} 

// B 
{{ Form::open(array('method' => 'POST', 'url' => 'pre-register-birth', 
    'class'=>'form-horizontal', 'id'=>'regist-form')) }} 

通知我改變action => ...url => ...這是一個小的變化,但它可能會解決這個問題。但是,您可能需要添加:

Route::post('/pre-register-birth', array('as'=> 'pre-register-birth', 'uses' => '[email protected]')); 

因此它識別指定的路線。

希望這會有所幫助!

+0

你好,我很抱歉,但問題是,在後期的方法。如果重定向沒有傳遞用戶參數,並且get方法總是繼續到else。 – 2014-09-28 20:46:47