2015-06-19 68 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。 –

相關問題