2015-06-19 113 views
0

我目前正在创建一个网站,一旦用户到达,他们迎接一个窗体,他们输入他们的唯一ID和DoB。在输入信息并单击提交后,它们将被发送到只有少量信息的主窗体,用户必须输入其余信息。Laravel MethodNotAllowedHttpException

at RouteCollection->methodNotAllowed(array('POST', 'PATCH')) 

注:当我尝试提交,因为我不断收到以下错误形式我的问题出现了,我不想在我的路线的任何变量。 (例如:我想要'表格/人'而不是'表格/ {person_id}')。另外,我只包括关于错误的相关信息。

gate.blade.php - (这是其中用户输入其ID和出生日期):

{!! Form::open(array('action' => '[email protected]', 'class' => 'form-inline')) !!} 

form.blade.php - (这是主要形式,用户必须填写并提交):

{!! Form::open(['url' => action('[email protected]'), 'method' => 'PATCH', 'class' => 'form-inline']) !!} 

routes.php文件:

Route::patch('jurors/form', '[email protected]'); 
Route::get('jurors', '[email protected]'); 
Route::post('jurors/form', '[email protected]'); 

JurorController @提交

public function submit(FormSubmitRequest $request) 
{ 
    //never reaches this point nor executes submit... instead redirects to gate IF it doesn't return 'MethodNotAllowedHttpException' error. 
    dd($request); 
} 

我设法让它不显示'MethodNotAllowedHttpException'异常,我改为重定向到了gate.blade.php页面。如果您对我有任何疑问或需要我澄清任何问题,请留下评论,我会尽快回复。

谢谢。

回答

1

它在我看来你的问题是我们的路线中的网址。你在重复他们。

首先,我会建议使用命名路由,因为它会给你更多的定义之间的路线。我会将您的路线更改为

Route::put('jurors/submit',[ 
    'as' => 'jurors.submit', 
    'uses' => '[email protected]' 
]); 

Route::get('jurors',[ 
    'as' => 'jurors.gate', 
    'uses' => '[email protected]' 
]); 

Route::post('jurors/form', [ 
    'as' => 'jurors.form', 
    'uses' => '[email protected]' 
]); 

同样在您提交的路线上,您为什么要使用PATCH请求。你不会使用一个POST请求与所有的数据?如果您仍然需要使用Patch,那么您应该在您的路线中使用put。 另一种方式为测试和调试,您可以使用any,看它是否是导致错误例如

Route::any('jurors/submit',[ 
     'as' => 'jurors.submit', 
     'uses' => '[email protected]' 
    ]); 

还那么您可以在您的form::open()使用路由的名称,例如

您的HTTP请求
{!! Form::open(array('route' => 'jurors.form', 'class' => 'form-inline')) !!} 

希望这有助于

+0

真棒,我给它在周一一试,当我有机会获得该项目。我需要读一下PATCH是什么,显然不是我认为的那样。 –

+1

我发现我的问题的主要来源甚至与路线没有关系,而是形式规则。无论如何,我已经设置了现在的方法,并使用与表单本身完全相同的路径路径(post = put ='jurors/form')。 –

+0

我终于找到了问题的根源:这是我连续发布两次的事实。我的意思是门是一个后置请求,后面的表单也是一个表单请求。尝试使用任何$请求规则应用于字段将导致methodnotallowedhttpexception。 –

相关问题