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