在Laravel中,我们使用路由来处理来自浏览器的HTTP请求。
我们可以将请求路由到控制器,执行一些逻辑,然后返回响应。
现在,我们可以发送用花括号封装的变量,{}
并且响应可以是任何东西,因此在我看来,通过控制器进行路由意味着丢失了不同请求方法(POST,GET,PUT等)的属性。
例如,我可以发送带有URI的POST请求,example/{id}
然后将其放入routes.php
文件中
Route::post('example/{id}','SomeController@SomeAction');
然后,我可以使用变量在控制器中执行某些操作$id
并发送响应。
另一方面,我可以发送带有URI的GET请求example/{id}
并将我的路线更改为
Route::get('example/{id}','SomeController@SomeAction');
控制器将给出相同的响应。
因此,我认为使用哪种请求方法并不重要吗?
在第二遍阅读中,我可以识别出您的问题的两个部分:
请求方法不会丢失。您可以使用访问它们$request->getMethod()
。因此GET请求将返回GET
。您还可以使用该方法isMethod('GET')
,该方法可用于获取真实值,该值使您可以根据请求类型返回不同类型的响应。
关于设置URL的方式,如果要创建REST风格的Web服务,那么使用什么HTTP动词就很重要。
我不会解释什么是REST-ful Web服务(您可以查找它),这是您的示例中的几点:
如果要输入get
一些数据,则应该发出GET
请求。它是表示从资源中读取的动词。如果必须发送大量数据-而您的意图是添加数据,则应改为发送数据POST
。
URI应该以最能描述您要处理的资源的方式有意义。
您可以将HTTP动词与HTTP谓词一起推断出隐含的动作。因此,如果您POST
要使用example/1
,我可能会推断(实际上是个题外话)您正在尝试从示例资源中更新记录1。实际上,您可能会使用PUT
动词(用于处理更新)。
在后台,由于浏览器的限制,Laravel使用POST请求,但将其视为服务器端的PUT请求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句