在页面重定向的路线中表单提交/验证 - Laravel

时间:2014-05-29 11:42:20

标签: laravel

在我的刀片文件中

<form id="" 
      class="form-horizontal" 
      accept-charset="UTF-8" 
      action="/apply/post/{{$content->vacancy->Id}}" 
      method="POST">

我的routes.php

Route::get('/apply/post/{ref}', function($ref) {

// 1. Define some rules and validate...
    $rules =  array('forename' => array('required'), 'email' => array('required'), 'surname' => array('required'), 'address1' => array('required') );

$validator = Validator::make(Input::all(), $rules, array('required' => 'The :attribute is required.') );

if( $validator->fails() ) {
    $messages = $validator->messages();
    return Redirect::to("http://example.co.uk/apply/{$ref}")->withInput()->withErrors($messages);
 } else {
    // do stuff with Input::all()
 }
}

无论我为Redirect::to()尝试什么,即Redirect::back()在提交表单后,我最终都会被重定向回http://example.co.uk/apply/post/234,这会导致我找到未定义的路由和错误页面。

如果用户验证失败,我真的希望他们重定向回http://example.co.uk/apply/234并显示错误/消息。通过这种方式,他们可以重新尝试使用最终提交给http://example.co.uk/apply/post/234的表单输入正确的信息。

不要问,我继承了代码,而我的Laravel是初学者,但这可能是使用框架吗?

1 个答案:

答案 0 :(得分:0)

您从表单

发布到路线
method="POST"

但您的路线被定义为GET

 Route::get('/apply/post/{ref}', function($ref) {

将其更改为POST

 Route::post('/apply/post/{ref}', function($ref) {