我只是想问为什么在Laravel框架中使用form :: hidden(),即很明显,在隐藏方法中您可以放置PUT或Delete HTTP请求方法,但是为什么我们不能只使用PUT或DELETE作为表单中的方法。是的,这是不可能的,我已经阅读了很多有关此的文章,但是对于Web开发的初学者而言,尚不清楚。因此,任何人都可以用简单的术语来解释
首先
,为什么要在表单中将POST用作http方法,然后在下面使用Form :: hidden('_ method','PUT')。我们是否仅使用PUT覆盖POST。
第二
,非常重要的一点是,如果有人尝试用简单的术语来解释为什么HTML中不提供PUT和DELETE而不提供阅读链接。谢谢您的关注
答案 0 :(得分:1)
Form::hidden('_method','PUT')
是在我们使用POST
方法的形式之后编写的。它告诉Laravel为该方法执行哪个方法。 laravel的方法很少;任何,发布,获取,放置,删除,修补。 您可以简单地使用POST方法并提交表单。但是,如果要使用资源类型控制器,则应该使用相应的方法。
答案 1 :(得分:1)
此方法已在HTML5上删除。我也想知道的原因... https://www.w3.org/TR/2010/WD-html5-diff-20101019/#changes-2010-06-24
5.1。自2010年6月24日以来的变化
基于实现反馈对HTML解析算法进行了大量更改。
hidden属性现在适用于与表相关的元素。
现在将canvas getContext()方法定义为能够更好地处理多个上下文。
媒体元素的startTime IDL属性已重命名为initialTime并添加了startOffsetTime。
现在可以在元素上使用预取链接关系。
ins和del的datetime属性不再需要指定时间。
不再支持将PUT和DELETE用作表单元素的HTTP方法。
不再使用s元素。
视频元素具有新的音频属性。
但是,它们只是从HTML5中删除的,您的服务器仍应能够识别来自HTML4和早期版本的请求。我还没有亲自尝试过,但是逻辑上说它们应该适用于较旧的HTML版本。并且在较旧的版本中不需要这些字段。至少逻辑就是这样。
修改
经过一番调查,似乎就像我以前的声明一样,只是从HTML5中删除是正确的,但事实如此,因为HTML5是唯一考虑过此方法的HTML标准。因此,我所说的可能在以前的版本中使用的说法是错误的。
答案 2 :(得分:1)
“ HTML”表单只有两种方法:获取和发布(包括HTML5)。
也就是说,laravel提出了支持直接从表单中调用丢失的方法 PUT
,PATCH
或DELETE
的方式。< / p>
Laravel表单方法欺骗
HTML表单不支持
PUT
,PATCH
或DELETE
操作。因此,在定义PUT
,PATCH
或DELETE
从HTML表单调用的路由时,您需要添加一个隐藏的_method
字段到表格。与_method
字段一起发送的值将用作HTTP请求方法 (Laravel Docs)
HTML标记form
是用这种方式定义的。表单数据可以作为URL变量(使用method =“ get”)发送或作为HTTP post transaction(使用method =“ post”)发送。
答案 3 :(得分:0)
Laravel提供了各种操作路线,例如创建,查看,更新和删除。获得Laravel resource controllers来获得创建,编辑,查看和删除所有路由的更简单方法。
我认为,如果您访问Laravel resource controllers documentation,您的疑问将会很明显。通过使用诸如GET, POST, PUT, PATCH and DELETE
之类的术语简化了路由操作。您认为HTML不支持PUT/PATCH/DELETE
操作这一事实是正确的。但是这些不是HTTP中使用的操作。相反,这是为了简化路线。此过程称为表单欺骗。例如,如果要更新某些内容,则可以使用Form::hidden('method', 'PUT')
方法执行表单欺骗(即,让框架知道要更新的内容)。同样,如果要删除某些内容,可以使用Form::hidden('method', "DELETE")