2019-09-11 18:32:39 68次浏览 1条回答 0 悬赏 10 金钱
http://fw.kjy.com/warehouse?c=2&big=1&s=14&w=20&a=12&b=13

上面的路由想设置成下面的路由访问,请问一下如何设置呢?

http://fw.kjy.com/warehouse/c_2/big_1/s_14/w_20/a_12/b_13
亿速云
  • 回答于 2019-09-12 18:08 举报

    几个方案吧:
    1、如果你的参数都是必不可少的,且参数顺序固定,那 很简单

    'warehouse/c_<c>/big_<big>/s_<s>/w_<w>/a_<a>/b_<b>' => 'warehouse/index'
    

    2、如果你的参数可选,或顺序不定,简单处理的话 就是把他们都弄到一个变量里,自己在程序中拆分这些变量

    'warehouse/<params:\S*>' => 'warehouse/index'
    

    params 这个参数得到的是 c_2/big_1/s_14/w_20/a_12/b_13 这样一个字符串,自己拆分处理

    3、讲究点的做法,自己写一个 专门处理这种 URL 的类,比如叫 MyUrlRule,实现 yii\web\UrlRuleInterface 这个接口,实现其中的 parseRequestcreateUrl 两个方法,基本上也就是 拆分 和 拼接 的操作,代码就不在这里献丑了,然后

    'urlManager' => [
      ...
      'rules' => [
        ...
        ['class' => 'app\components\MyUrlRule'],
        ...
      ]
    ]
    
您需要登录后才可以回答。登录 | 立即注册
PHP学院的中学生
主管

PHP学院的中学生

注册时间:2018-10-23
最后登录:2019-09-12
在线时长:32小时17分
  • 粉丝5
  • 金钱295
  • 威望10
  • 积分715

热门问题