请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

8-15节路由匹配这块,

我定义了两条路由,路由完全匹配也开启了。

//theme
Route::get('api/:version/theme','api/:version.Theme/getThemeList');
//theme detaile
Route::get('api/:version/theme/[:id]','api/:version.Theme/getThemeDetaile');

如果我不传参数验证器给出的错误一直是第一个没传ids的错误。要完全避免这个问题还得把第二个路由改个名称。否则用户不传,系统无法正确的错误提示。改成如下路由就可以完全区别开用户究竟访问的是那个接口了!另外引申出一个问题,banner接口如果不给参数id加方括号,不传参数访问banner接口开启调试模式会报控制器不存在的错误。实际上控制器是有的。

//theme detaile
Route::get('api/:version/themep/[:id]','api/:version.Theme/getThemeDetaile');

正在回答 回答被采纳积分+3

3回答

7七月 2018-04-21 08:09:02

版本是多少?如果是很新的版本会有部分的差异

1 回复 有任何疑惑可以回复我~
  • 提问者 大王今天不巡山 #1
    5.0.18我用的是这个版本。
    回复 有任何疑惑可以回复我~ 2018-04-21 10:03:17
  • 7七月 回复 提问者 大王今天不巡山 #2
    你需要看看 最新的这个版本的文档说明看看有没有改变。其实我觉得学习不应该用最新版本。TP几周就更新一个版本,根本跟不上她的版本更新速度。还是跟课程版本一样省心。本身新版本就没撒好东西。。。
    回复 有任何疑惑可以回复我~ 2018-04-23 02:40:44
Stormer2018 2018-07-23 09:03:23

Route::get('api/:version/theme','api/:version.Theme/getThemeList'); 课程里的这个路由在我的TP里是无法接受IDs参数的。

写成这样就正常了:Route::get("api/theme/:IDs", "API/Theme/GetListByIDs"); ,定义接口地址的时候得加上参数。

TP5.0.20

0 回复 有任何疑惑可以回复我~
  • 提问者 大王今天不巡山 #1
    不定义也是可以的,你可以这么干。http://xxx.com/api/v1/theme?ids=a,b,c这样就可以传进去了。Route::get("api/theme/:IDs", "API/Theme/GetListByIDs")这种定义方式你必须http://xxx.com/api/v1/theme/a这种方式传值。前者在前端处理看起来比较优雅,类似这样把id穿传进去let parameters = {
                url: '/v1/product/detail',
                type: 'GET',
                data: {
                    'id': id
                }
            }
            return this.reqest(parameters)
    回复 有任何疑惑可以回复我~ 2018-07-23 09:46:41
提问者 大王今天不巡山 2018-04-21 08:11:22

5.0.18我用的是这个版本。

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信