首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API资源Laravel

API资源Laravel
EN

Stack Overflow用户
提问于 2020-03-01 14:10:18
回答 2查看 1.7K关注 0票数 1

我想了解Laravel中API资源背后的概念。如果我理解了答案,我就会阅读here。如果我有一个自定义端点,并且为该控制器定义了apiresource端点。当我在控制器上调用自定义端点时,apiresource端点(如show、store)是否会被自动调用?

下面是我的例子:

代码语言:javascript
复制
Route::post('postorderitems', 'Api\OrderitemsController@postOrderItem')->middleware('auth:api');

如果我调用它,并且定义了以下内容:

代码语言:javascript
复制
Route::apiResource('orderitems', 'Api\OrderitemsController')->middleware('auth:api');

OrderitemsController中的存储方法会被自动调用吗?

EN

回答 2

Stack Overflow用户

发布于 2020-03-01 15:13:00

Route::apiResource()为给定的资源定义REST API路由:indexstoreviewupdatedestroy

您的控制器可能定义了与上述名称相同的公共方法。如果控制器有这些方法,那么,是的,路由将与控制器函数“关联”。

Route::apiResource('orderitems', 'Api\OrderitemsController')->middleware('auth:api');

orderitems发送POST请求将由Api\OrderitemsController@store方法处理。

我建议运行php artisan route:list命令来查看路由指向哪个控制器的方法。

Resource Controllers

票数 1
EN

Stack Overflow用户

发布于 2020-03-01 15:21:43

根据Laravel文档

在声明将由API使用的资源路由时,您通常希望排除呈现createedit等HTML模板的路由。为方便起见,您可以使用apiResource方法自动排除这两条路由:

代码语言:javascript
复制
Route::apiResource('photos', 'PhotoController');

因此,如果您按如下方式定义了apiResource,并向orderitems发送了POST请求,则只会自动调用OrderitemsController的store方法中的store方法。

代码语言:javascript
复制
Route::apiResource('orderitems', 'Api\OrderitemsController')->middleware('auth:api');

参考资料:

Laravel -> Controllers -> Resource Controllers

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60472490

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档