2017-03-04 160 views
0

爲什麼我得到這個錯誤?MethodNotAllowedHttpException laravel 5

路線:

Route::group(['prefix'=>'admin','middleware'=>'auth'],function(){ 
    Route::get('/',['uses'=>'Admin\[email protected]','as'=>'adminIndex']); 
    Route::resource('/products','Admin\ProductController'); 
}); 

形式:

{!! Form::open(['url' => route('admin.products.edit',['products'=>$product->id]),'class'=>'form-horizontal','method'=>'POST']) !!} 
        {{ method_field('EDIT')}} 
        {!! Form::button('Edit', ['id'=>'submit','type'=>'submit']) !!} 
        {!! Form::close() !!} 

此外,當我試圖通過鍵入PHP工匠路線到達路線的列表:列表中,我發現了錯誤:

[Symfony\Component\HttpKernel\Exception\HttpException] 

什麼問題?

回答

0

我認爲在管理前綴的資源不採用admin前綴。所以你仍然需要使用它,而不需要管理員前綴。此外,您正在使用'網址'而不是'路線'。

{!! Form::open(['url' => '/admin/products/'.$product->id.'/edit'),'class'=>'form-horizontal','method'=>'POST']) !!} 

如果你想使用的路由

{!! Form::open(['route' => ['products.edit', 'products'=>$product->id], 'class'=>'form-horizontal','method'=>'POST']) !!} 

如果你是tryint更新,而不是

{!! Form::model($product, ['method' => 'PATCH', 'route' => ['products.update', $product->id], 'class' => 'form-horizontal' ]) !!} 
+0

這不起作用,因爲編輯方法使用GET,而不是POST。 –

+0

用更新替換編輯。如果你正在嘗試更新。 – EddyTheDove

0

由於編輯方法使用GET,更改您的代碼:

{!! Form::open(['route' => ['admin.products.edit', $product->id], 'class' => 'form-horizontal', 'method' => 'GET']) !!} 
{!! Form::submit('Edit', ['id' => 'submit']) !!} 
{!! Form::close() !!} 

而且,因爲它是GET,你可以使用簡單的鏈接:

<a href="{{ route('admin.products.edit', $product->id) }}"> 
    <button class="btn" id="submit">Edit</button> 
</a> 
0

看下來應該是使用路線 '作爲'=>'admin.products保持.edit'並獲得id也重定向到控制器功能編輯產品

Route::group(['prefix'=>'admin','middleware'=>'auth'],function(){ 


Route::get('/edit/{id}/product', 
      [ 
      'uses'=>'Admin\[email protected]', 
      'as'=>'admin.products.edit' 
      ]); 

Route::resource('/products','Admin\ProductController'); 
}); 
相關問題