2017-02-23 8 views
0

は、これは私が常に保つ理由を私は知らない私のルートラベル5削除方法。常にRouteCollection.phpライン233でMethodNotAllowedHttpException:

Route::delete('/customer_page/summary/{id}', '[email protected]_cart'); 

私のコントローラ機能

public function delete_cart($id) 
    { 


     cart::findOrFail($id)->delete(); 

     return redirect('/customer_page/summary'); 
    } 

マイフォーム

@foreach($cart as $key => $val) 
          <tr> 
          <td>{{ $val->room_type }}</td> 
          <td>{{ $val->number_of_rooms }}</td> 
          <td>{{ $val->price }}</td> 
          <td> 
           <form action="/customer_page/summary/{{ $val->id }}" method="post"> 
           {{ csrf_field() }} 
           <input type="hidden" name="_method" value="DELETE" /> 
           <button type="submit" class="btn waves-effect red"><i class="material-icons">delete</i>delete</button> 
           </form> 
          </td> 
          </tr> 
         @endforeach 

ですそのエラーが発生する

+0

あなたの 'アクション'から開始 '/'を削除する –

答えて

1

あなたは、フォームの内側に、Laravelのmethod_field()ヘルパー使用し、あなたのフォームにごmethod="POST"を設定する必要があります。{{ method_field('DELETE') }}を。あなたのメソッドをdeleteに直接設定しようとしないでください。

フォームヘルパーパッケージフォームlaravel-collectiveを使用したもう1つの答えはうまくいきますが、これはLaravelにはデフォルトでは含まれていないため、生のHTMLを使用してこれを達成する方法を説明することを賢明に考えました。

-1

あなたはあなたがDELETEとして定義されているルート上に表示さ

DELETEにPOSTから、フォーム上の方法を変更するED:

Route::delete('/customer_page/summary/{id}', '[email protected]_cart'); 
+0

フォーム要素のメソッド属性は、 'get'または' post' [MDNによる](https://developer.mozilla .org/ja-ja/docs/Web/HTML/Element/form)を参照してください。 'delete'もサポートしていますか?いずれにせよ、これは正しい方向にあると私は思う。 – HPierce

+0

まだMethodNotAllowedHttpExceptionと表示されています – jean9

+0

@HPierceいいえ、HTMLフォームはGETとPOSTのみをサポートしています。 – patricus

0

は、以下の(RESTfulな)を行いますが

Route::resource('reservations', 'ReservationController'); 

OR(NON RESTfulな)

Route::delete('delete/{id}',array('uses' => '[email protected]', 'as' => 'My.route')); 

コントローラ

public function destroy($id) 
{ 
    $item = Reservation::findOrFail($id); 
    $item->delete(); 

} 

ビュー

@foreach($reservations as $item) 
    <tr> 
     <td>{{ $item->description }}</td> 

     <td> 
      {{ Form::open(['method' => 'DELETE', 'route' => 'reservations.destroy', $item->id]) }} 
       {{ Form::hidden('id', $item->id) }} 
       {{ Form::submit('Delete', ['class' => 'btn btn-danger']) }} 
      {{ Form::close() }} 
     </td> 
    </tr> 
@endforeach 

OR(非安らか用)

{{ Form::open(['route' => ['My.route', $value->id], 'method' => 'delete']) }} 
<button type="submit">Delete</button> 
{{ Form::close() }} 
関連する問題