我的问题是,当我提交表单时,它会通过get方法。 工作流程是表单提交 - >得到 - >发布,它应该是表单提交 - >帖子。 我需要在我的get方法中有一个条件来验证de array is not null
我的代码: 的路线
Route::get('/pre-register-birth',array('as'=>'pre-register-birth', 'uses'=>'UserController@preRegisterBirthData'));
Route::post('/pre-register-birth', 'UserController@preRegisterBirthDataPost');
查看
{{ Form::open(array('method' => 'POST', 'action' => 'UserController@preRegisterBirthDataPost',
'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 :(得分:0)
我想我以前见过这个问题。因为奇怪的原因,Laravel不喜欢action => ...
所以,将你的表单声明从a更改为b:
// A
{{ Form::open(array('method' => 'POST', 'action' => 'UserController@preRegisterBirthDataPost',
'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' => 'UserController@preRegisterBirthDataPost'));
因此它识别出指定的路线。
希望这有帮助!