tp5的资源路由会自动注册如下路由
可是http动词含义应该是:GET(SELECT):从服务器取出资源(一项或多项)。POST(CREATE):在服务器新建一个资源。PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。DELETE(DELETE):从服务器删除资源。为什么注册了7个路由,多出了3个get路由?按照restful风格,增删改查不应该就四个路由:get,post,put,delete吗?get-blog/:id 和get-blog没有问题,可是get-blog/create和get-blog/:id/edit是什么情况。。。edit不应该是put请求的操作吗?最近在看tp5的手册,这个疑问一直困扰着,望大神点醒
2 回答
慕容森
TA贡献1853条经验 获得超18个赞
不能完全从API的角度考虑问题,他这个restful风格的资源路由,还包含非前后端分离web应用的表单功能
GET blog/create就是创建博客的表单 =》 提交到 POST blog 去创建一个新博客
GET blog/:id/edit 就是某个ID对应的博客编辑表单 =》 提交到 PUT blog/:id 去更新修改的数据
慕森卡
TA贡献1806条经验 获得超8个赞
楼主没看全文档。这个路由其实是简写,一条路由等于七条路由,用不用看个人。
use think\Route;
//第二个参数的意思是:工程/控制器
Route::resource('index','index/index');
//上面这条其实等于下面这七条路由
Route::rule('/index','index/index/index','get');
Route::rule('/index/create','index/index/create','get');
Route::rule('/index/save','index/index/save','post');
Route::rule('/index/:id','index/index/read','get');
Route::rule('/index/:id/edit','index/index/edit','get');
Route::rule('/index/:id','index/index/update','put');
Route::rule('/index/:id','index/index/delete','delete');
至于楼主说的edit是put,我们edit的时候,主要是要把对应id以前的内容调出来,不提交,所以用get,在edit页面编辑完,用put提交给Route::rule('/index/:id','index/index/update','put');
- 2 回答
- 0 关注
- 594 浏览
添加回答
举报
0/150
提交
取消