gpt4 book ai didi

laravel - Laravel 中的 HTTP 请求

转载 作者:可可西里 更新时间:2023-11-01 17:32:36 28 4
gpt4 key购买 nike

在 Laravel 中我们使用路由来处理来自浏览器的 HTTP 请求。

我们可以将请求路由到 Controller ,执行一些逻辑,然后返回响应。

现在,我们可以发送用大括号 {} 封装的变量,响应可以是任何东西,所以在我看来,通过 Controller 进行路由意味着不同请求方法的属性( POST、GET、PUT 等)都丢失了。

例如,我可以发送一个带有 URI example/{id} 的 POST 请求,然后放入我的 routes.php 文件

Route::post('example/{id}','SomeController@SomeAction');

然后我可以在我的 Controller 中使用变量 $id 做一些事情并发送一个响应。

另一方面,我可以发送一个带有 URI example/{id} 的 GET 请求,并将我的路由更改为

Route::get('example/{id}','SomeController@SomeAction');

Controller 会给出相同的响应。

那么,我是否认为使用何种请求方法并不重要?

最佳答案

我可以在第二次通读时确定您问题的两个部分:

请求方法不会丢失。您可以使用 $request->getMethod() 访问它们。因此 GET 请求将返回 GET。您还可以使用 isMethod('GET') 方法,您可以使用该方法获取真值,从而根据请求类型返回不同类型的响应。

关于您设置 URL 的方式,如果您要创建 REST,您使用的 HTTP 谓词很重要。 -ful 网络服务。

我不会解释什么是 REST-ful 网络服务(您可以查找它),这里是您示例中的几点:

如果您要获取一些数据,您应该执行GET 请求。它是表示从资源中读取的动词。如果您必须发送大量数据 - 而您的目的是添加数据,则应该改为 POST

URI 应该以最能描述您正在操作的资源的方式有意义。

与 HTTP 动词一起,您可以推断出隐含的操作。因此,如果您正在POSTexample/1,我可能会推断(实际上这是题外话)您正在尝试更新 从示例资源中记录 1。实际上,您可能会使用 PUT 动词(处理更新)。

在幕后,由于浏览器的限制,Laravel 使用 POST 请求,但在服务器端将其视为 PUT 请求。

关于laravel - Laravel 中的 HTTP 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38284145/

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