gpt4 book ai didi

Controller 方法和路由的 Laravel 最佳命名约定

转载 作者:行者123 更新时间:2023-12-04 10:58:29 25 4
gpt4 key购买 nike

我正在创建一个获取项目详细信息的 ajax 请求

这是我的 Controller 方法的样子。

class SystemItemsController extends Controller
{
function getDetails(Request $request){
$response = SystemItems::where('item_name', 'like', '%' .$name . '%')->get();
return response()->json($response,200);
}

}

和我的

路由名称

Route::get("/system-items/item-details","SystemItemsController@getStockDetails");

问题:什么是我的路线(item-details)和方法(getStockDetails 的最佳命名约定?强>)?

跟进问题:我可以使用 laravel 资源来做到这一点吗?

最佳答案

您可以在 URI 模式中使用 kebab-case 和复数形式,但 Controller 名称使用驼峰式和单数形式,因为如果尝试进行路由模型绑定(bind),Laravel 将寻找这种形式。

您可以将它用于资源路线,但请注意,对于这条路线

Route::resource('item-details', 'ItemDetailController');

路由参数会导致snake_case和singular

/item-details/{item_detail}

对于 Controller 方法,常规名称是 indexshowcreatestore编辑更新删除。以及用于自定义方法的 snakeCase。

您还可以添加一个路由组以使用一些 uri 作为前缀,例如 /system-items

Route::group(['prefix'  =>  'system-items'], function () {
Route::resource('item-details', 'ItemDetailController');
});

运行php artisan route:list查看结果

+--------+-----------+-----------------------------------------------------+-------------------------+---------------------------------------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+-----------------------------------------------------+-------------------------
| | GET|HEAD | api/v1/system-items/item-details | item-details.index | App\Http\Controllers\Api\v1\ItemDetailController@index | api |
| | POST | api/v1/system-items/item-details | item-details.store | App\Http\Controllers\Api\v1\ItemDetailController@store | api |
| | GET|HEAD | api/v1/system-items/item-details/create | item-details.create | App\Http\Controllers\Api\v1\ItemDetailController@create | api |
| | GET|HEAD | api/v1/system-items/item-details/{item_detail} | item-details.show | App\Http\Controllers\Api\v1\ItemDetailController@show | api |
| | PUT|PATCH | api/v1/system-items/item-details/{item_detail} | item-details.update | App\Http\Controllers\Api\v1\ItemDetailController@update | api |
| | DELETE | api/v1/system-items/item-details/{item_detail} | item-details.destroy | App\Http\Controllers\Api\v1\ItemDetailController@destroy | api |
| | GET|HEAD | api/v1/system-items/item-details/{item_detail}/edit | item-details.edit | App\Http\Controllers\Api\v1\ItemDetailController@edit

当然,所有这些都是约定,您可以通过手动操作并使用您自己的约定来自定义所有内容。

关于 Controller 方法和路由的 Laravel 最佳命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59014483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com