Laravel表单RESTFul风格提交方法
1:HTMLForms只支持POST和GET,而RESTFull方法有: GET, POST, PUT, PATCH, DELETE等几种。要支持其他方法怎么办?
如果要加入其他方法,Laravel的做法是在from里增加一个隐藏字段:_mothod。
比如PUT:<input type="hidden" name="_method" value="PUT/>;
2:定义资源路由
Route::resource('article', 'ArticleController');定义这一个路由,laravel实际包含了七个路由:
请求方法 | 请求URI | 对应的控制器方法 | 代表的意义 |
---|---|---|---|
GET | /article | index | 索引/列表 |
GET | /article/create | create | 创建(显示表单) |
POST | /article | store | 保存你创建的数据 |
GET | /article/{id} | show | 显示对应id的内容 |
GET | /article/{id}/edit | edit | 编辑(显示表单) |
PUT/PATCH | /article/{id} | save(5.5以后版本是:update) | 保存你编辑的数据 |
DELETE | /article/{id} | destroy | 删除 |
附:Jquery模拟PUT/PATCH/DELETE方法:
1:$.ajax 中的dataType中设置,比如dataType:PUT (这种方法有些浏览器可能不支持)
2:put和delete其实都是post请求,也可以通过POST带_method参数
$.post("/goods/"+id,{'_method':'DELETE','_token':'{{ csrf_token() }}'},function(result){ if(result.status == 200){ alert('删除成功'); }else{ alert('删除失败'); } window.location.reload(); //刷新页面 },'json');laravel的POST还要记得_token