Laravel 4表格发布

时间:2014-09-23 13:10:27

标签: php forms post laravel

我的问题是,当我提交表单时,它会通过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);
    }
}

1 个答案:

答案 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'));

因此它识别出指定的路线。

希望这有帮助!