为什么需要form标签来删除laravel 5中的数据?

问题描述:

在Laravel 4中,列表中的数据可以在不使用<form>标记的情况下删除。但是,在laravel 5中,它表示我们需要使用form标签来删除数据。什么原因 ??为什么需要form标签来删除laravel 5中的数据?

+0

这个地方已经说的吗?在laravel 5.2中我仍然可以删除数据。 – ClearBoth

+0

所以你必须使用method_field righ t? – Drudge

+0

不,我可以在任何时候删除尽可能多的东西。 – ClearBoth

因为laravel得到了method_field(method)函数来模拟DELETE,PUT,PATCH方法。 它会创建一个隐藏的输入,当请求到达应用程序时,该输入将方法名称提供给laravel。

文档字:“包含表单的HTTP动词的欺骗值的隐藏输入字段”。 Here

{!! method_field('DELETE') !!} 

资源控制器希望所有method_field。要获取数据,它默认使用GET方法,保存它的POST方法,更新它应该是PUT或PATCH,并删除应用程序需要的DELETE字段。

http://laravel.com/docs/5.1/controllers 退房资源路由方法字段列表

+0

method_field方法用于**生成一个HTML隐藏的输入字段,其中包含表单的HTTP动词的欺骗值。**但是,没有form标记的情况下,为什么要使用该方法? – Drudge

+0

这是处理表单的正确方法,您可以为安全目的添加csrf字段“csrf_field()”,并且您正在使用资源路由。正如你可能知道的,为了处理数据,你应该使用一个表单。你有任何错误信息或只是你的请求satus代码? – Disfigure

+0

那么为什么不编辑方法需要这种方法? – Drudge

Laravel是基于REST的架构,A宁静控制器遵循一个宁静的资源(GET,POST,PUT/PATCH和DELETE)标准的蓝图,如果你想在您的应用程序添加删除按钮这个方便的JavaScript代码可以帮助您通过大杰弗里方式写你的所有删除按钮代码

https://gist.github.com/JeffreyWay/5112282

为laravel 5

分支

https://gist.github.com/soufianeEL/3f8483f0f3dc9e3ec5d9

https://gist.github.com/ghprod/0bb7f8d207ba7838a0e6

+0

如果我不想使用RESTful路由怎么办?我只想解释为什么laravel会在laravel 5中改变这些东西。在laravel 4中,我们不需要这些东西? – Drudge

+0

在这种情况下,您必须为每个控制器的每个删除调用编写路由,此时您正在调用路由Route :: resource('page','PageController'),并且您有完整的CURD资源,自定义路由将为Route ::获得(“删除/(编号)”,“@的PageController删除页面”) – umefarooq