2016-11-04 14 views
0

使用してルートイムは、次のとおりです。削除機能Laravel 5.2

Route::resource('producten', 'ProductenController', ['only' => ['index', 'store', 'destroy', 'edit', 'update', 'create']]); 

これは、私はこれは私がそれのために作った形であること

public function destroy(request $request , product $product) 
{ 
    $product->delete(); 

    return redirect(Route('producten.index')); 
} 

に使用するコントローラ機能です。私はそれはそれではなく、deleteメソッドのPOSTメソッドを使用していた、と私は($製品)を追加するときも、私は空白のページを得たと述べたソースコードを見

{{ Form::Open(['Route' => 'producten.destroy', $product], ['method' => 'delete']) }} 
       {{ Form::Submit('delete')}} 
       {{ Form::close() }} 

、また、私はことが判明したとき、私

uがより多くの情報が必要な場合はちょうど私に知らせて、それは私が作ったstoreメソッドに行くと、私はなぜ知らない送信ボタンを押すと、私は質問

+1

まず、クラスを小文字( 'Request'ではなく' request')としてインポートしていますか?第二に、モデルをdestroy()の第二引数としてどのように渡すと思いますか?通常これは '$ id'で、メソッド内では' $ product = find :: $ id 'を使います。 – Devon

+0

Devon:Modelバインディングを使用すると、モデルオブジェクトが引数として使用できます。 –

答えて

0

ルートと方法べきで、それを追加します2つの異なる配列ではなく、同じ配列内にあること。

{{ Form::Open(['method' => 'DELETE', 'route' => ['producten.destroy', $product]]) }} 
    {{ method_field('DELETE') }} 
    {{ Form::Submit('delete')}} 
{{ Form::close() }} 
+0

Model Bindingを使用しているときに、オブジェクトをルートに使用することができます –

+0

もしそうなら、これに気をつけてください。しかし、Form :: Openを宣言するときに、メソッドとルートを渡すために独自の配列を使用する必要があります。 @MarekSkibaモデルバインディングに関連する部分を削除してアンサーを更新しました。そのために残念。 – GiuServ

0

フォームに問題があると思います。あなたはこれで試すことができます:

<form action="{{ route('producten.destroy', ['product' => $product->id]) }}" method="POST"> 
    {{ csrf_field() }} 
    {{ method_field('DELETE') }} 

    <button type="submit">Remove</button> 
</form>