他在规则urlManager中写道:
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>/<id:\d+>/<name:\w+>' => '<controller>/<action>',
我生成网址:
$this->createUrl('article/tag', ['id' => $model->id, 'name' => $model->name]); //$model->id=1; $model->name='newname'
我期待这个 URL:http://domain.ru/article/tag/1/newname
但我得到这个:http://domain.ru/article/tag/1/?name=newname
似乎根本就没有涉及到第二条规则。
我试图删除第一条规则,并且 URL 形成了它应该形成的,但是在没有参数的 URL 的页面上name(例如http://domain.ru/article/tag/1),如果我想访问URL,$_GET['id']就会发生错误Undefined index: id。简而言之,链接只有在有 2 个参数时才有效
通过以相反顺序放置规则来解决问题。