2017-04-08 43 views
0

私は2つのテーブルを持つデータベースを持っています:テーブルCATEGORIESはテーブルPRODUCTSのIDです。 カテゴリを削除し、テーブル製品のレコードがそのカテゴリIDに関連付けられている場合、laravelは405エラーを返し、メソッドを破棄することはできません。 405エラーを回避し、メソッドを破棄するにはどうすればよいですか?カテゴリはすべての製品に関連付けられていない場合、私はそれを推測するように、任意のエラーをスローしないメソッドを削除Laravel 5.2 - メソッドDELETEは許可されていません(エラー405)

$api = app('Dingo\Api\Routing\Router'); 

$api->version('v1',['middleware' => ['api']], function($api){ 

    $api->resource('categories', 'App\Http\Controllers\CategoriesController'); 
    $api->resource('products', 'App\Http\Controllers\ProductsController'); 
    $api->get('categories/{id}/products', 'App\Http\Controllers\[email protected]'); 

}); 

EDIT

されていません。

は、ここに私のルートの設定ですルートの問題

答えて

1

ルートは存在しますが、その方法ではない場合、LaravelはHTTP 405を返します。私はDingoに完全に慣れていませんが、使用しようとしているルートがDELETE要求に登録されていることを確認するためにphp artisan route:listを実行してください。

+0

私はすでにそのコマンドを使用してすべてのルートを表示していますが、その方法はリストにあるので、登録の問題ではないと思います。 –

+0

呼び出し時にルート要件を満たしていませんか? 'v1'のバージョン管理(実装済みですか)、あるいは' api'ミドルウェアに失敗しましたか? – Dwight

+0

編集セクションに書いたように、削除したいカテゴリが製品なしでは関連付けられていない場合、私が呼び出すメソッドは期待どおりの動作をするため、ルート要件が不足しているとは思われません。しかし、私は単一のIDのinsted配列を渡すときに私は問題があることに気づいた:私は単一のidを渡す場合、メソッドが期待どおりに動作しますが、私はIDの配列全体を削除する405エラーを取得します。これは私のために奇妙に聞こえる。 (私の英語は申し訳ありませんが、英語はできませんので、できる限り書く) –

関連する問題