路由器资源中的自定义命名

时间:2016-11-21 16:59:24

标签: laravel laravel-5.2 laravel-routing

我在我的控制器中

public function details($id)
    {
        $claim = Claim::findOrFail($id);
        $details = $claim->details;

        return response()->json([], 200);
    }

我的路线

Route::resource('claims', 'Admin\\ClaimsController',['names'=> ['details'=>'admin.claims.details'], 'only' => ['index','store','update','destroy','details']]);

当我运行php artisan route:list时,我在列表中看不到admin.claims.details(admin / claims / 1 / details)

这里的文档很模糊,所以我问如何正确设置自定义路由?如何指定“POST”或“GET”?

1 个答案:

答案 0 :(得分:1)

要覆盖默认资源控制器操作的路由名称,您可以使用您的选项传递名称数组。

例如:

Route::resource('claims', 'ControllerClassName', [
    'names' => [
        'index' => 'admin.claims.details',
        'create' => 'admin.claims.create',
        // etc...
    ], 
    'only' => [
        'index','store','update','destroy','details'
    ]
]);

参考:https://laravel.com/docs/5.2/controllers#restful-naming-resource-routes


以下是设置自定义命名的get / post路由的示例。

获取路线

Route::get('claims', ['as' => 'admin.claims.details', uses => 'ControllerClassName']);

POST路线

Route::post('claims', ['as' => 'admin.claims.details', uses => 'ControllerClassName']);

参考:https://laravel.com/docs/5.2/routing#named-routes