我正在创建一个 ajax 请求来获取项目详细信息
下面是我的控制器方法的样子。
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 模式中使用烤肉串大小写和复数形式,但控制器名称使用 camelCase 和单数,因为如果尝试执行路由模型绑定,这就是 Laravel 将寻找的内容。
您可以将其用于资源路由,但请注意,对于此路由
Route::resource('item-details', 'ItemDetailController');
route 参数将产生 snake_case 和单数
/item-details/{item_detail}
对于控制器方法,常规名称是index
、show
、create
、store
、edit
、update
和delete
。和蛇壳用于自定义方法。
您还可以添加路由组以前缀添加一些 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 | AppHttpControllersApiv1ItemDetailController@index | api |
| | POST | api/v1/system-items/item-details | item-details.store | AppHttpControllersApiv1ItemDetailController@store | api |
| | GET|HEAD | api/v1/system-items/item-details/create | item-details.create | AppHttpControllersApiv1ItemDetailController@create | api |
| | GET|HEAD | api/v1/system-items/item-details/{item_detail} | item-details.show | AppHttpControllersApiv1ItemDetailController@show | api |
| | PUT|PATCH | api/v1/system-items/item-details/{item_detail} | item-details.update | AppHttpControllersApiv1ItemDetailController@update | api |
| | DELETE | api/v1/system-items/item-details/{item_detail} | item-details.destroy | AppHttpControllersApiv1ItemDetailController@destroy | api |
| | GET|HEAD | api/v1/system-items/item-details/{item_detail}/edit | item-details.edit | AppHttpControllersApiv1ItemDetailController@edit
当然,所有这些都是约定,您可以通过手动操作并使用自己的约定来自定义所有内容。