2017-04-08 161 views
0

我有一個帶有兩個表的數據庫:table CATEGORIES有一個id,它是表PRODUCTS的fk。 當我想刪除一個類別,並且表格產品中的記錄與該類別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]'); 

}); 

編輯

如果該類別不與任何產品相關,刪除方法,所以我想它不會引發任何錯誤是不是一個路由問題

回答

1

如果路由存在但不是該方法,則Laravel僅返回HTTP 405。我並不完全熟悉Dingo,但運行php artisan route:list來檢查您嘗試使用的路由是否已註冊DELETE請求。

+0

對於dingo api我已經使用它的命令來顯示所有路由,並且該方法在列表中,所以我猜這不是註冊問題 –

+0

當你調用它時,你是否滿足路由要求,可能是缺少'v1'版本控制(但是你已經實現了)或者失敗了'api'中間件? – Dwight

+0

我不認爲我錯過了一些路由需求,因爲正如我在編輯部分中所寫的那樣,如果我想要刪除的類別在沒有任何產品的情況下沒有關聯,我調用的方法會按預期執行其行爲。但是,我注意到,當我傳遞一個單一的ID的數組傳遞時,我得到了問題:如果我傳遞一個單一的ID方法工作如預期,但如果我發送一個完整的ID數組刪除我得到405錯誤。這聽起來很奇怪。 (對不起我的英文,我不是英文,所以我寫我可以) –

相關問題