2016-04-09 68 views
1

我有一個表單,我正在嘗試更新表單。在表單中,'name'是唯一字段(在請求頁面和表格中添加了唯一條件,名稱被設置爲唯一)。當我嘗試更新窗體(我提供的值,該表已存在於表中)時,它顯示'RouteCollection.php 219行'中的MethodNotAllowedHttpException錯誤。Laravel 5.2:RouteCollection.php中的MethodNotAllowedHttpException第219行 - 更新表格

如果我使用不存在於表中的非現有名稱更新'名稱',它將無任何問題地工作。

Error

路由器

Route::group(['middleware' => ['superadmin']], function() { 
    Route::post('/sadmin/update_club',array('uses' => 'SAdmin\[email protected]', 'as' => 'updateClub')); 
} 

請求

class UpdateClubRequest extends Request 
{  
    public function authorize() 
    { 
     return true; 
    } 
    public function rules() 
    { 
    return [ 
     'name' => 'required|max:150|unique:clubs,name,'.Request::input('id'), 
     'logo' => 'image|mimes:jpeg,png,bmp,gif,svg|max:10000', 
     ]; 
    } 
} 

佈局頁面

{{ Form::open(array('route' => 'updateClub', 'method' => 'POST', 'class' => 'form-horizontal', 'files'=>true)) }} 

    {{ Form::hidden('id', $club[0]['id']) }} 
    {{ Form::text('name', $club[0]['name'], array('class' => 'form-control', 'maxlength' => 50)) }} 

{{ Form::close() }} 
+0

我覺得'MethodNotAllowedHttpException'通常與'發送'到'get'路由相關,反之亦然,這也是錯誤信息顯示的內容。偶然的情況下,你有'get'路線被定義到你的'後'路線上的同一個位置嗎? – camelCase

+0

@camelCase。是的,我有很多獲得路線... 路線::得到('/ sadmin /俱樂部','SAdmin \ ClubController @俱樂部'); Route :: get('/ sadmin/add_club','SAdmin \ ClubController @ addClub'); –

+0

但是任何到'/ sadmin/update_club''? – camelCase

回答

2

我沒有看到任何錯誤這裏,所以這是可能的錯誤可能是這樣別的地方。例如,我看到您爲此路線使用superadmin。你應該在控制檯中運行:

php artisan route:list 

,看看有什麼中間件應用於updateClub路由名稱及驗證該中間件代碼,因爲它可能是一些人正在不正確的重定向(方法GET到只有POST例如航線)。

第二件事情(這裏沒有引起問題,但您應該遵循一些標準) - 如果您創建更新某些內容的操作,則應該使用PUT方法(POST用於創建新對象),因此在路徑和表單中這條路線,你應該改變POST到PUT

編輯

問題可能也有點不同。讓我們假設你有多步表單(可能這是你的情況,因爲你只使用POST,所以你使用了以下方法GET(step1) - > POST(step2) - > POST(step3))。在第二步你得到錯誤,請求類將努力使重定向再次第二步但GET方法,所以你應該在routes.php文件還允許GET方法,所以你的情況,你應該改變

Route::post('someroute' ... 

到:

Route::match(['get','post'], 'someroute' ... 

你應該對頁面做它,你是顯示這種形式

+0

實際上,只有在添加表中已存在的名稱時才存在此問題。如果我正在更改請求 - 「'name'=>'required | unique:clubs,name''。Request :: input('id')「to」'name'=>'required'「,它會正常工作 –

+0

@LindoSebastian請看我的編輯 –

+0

我試過了,但它不工作... :( –

相關問題