我正在尝试创建一个允许获取相关模型的URL规则。比如这个URL:
/ API /用户/ 1 /朋友
我得到了一个集合"朋友"对于ID为1的用户
为此,我写了这个正则表达式:
api(\/\w+\/\d+)*(\/\w+)*
哪个匹配所有这些网址格式
API /
API /用户
API /用户/ 1
API /用户/ 1 /朋友
但是,当我在Yii URL Manager中编写规则时。我得到以下规则的例外情况,其中说:
规则:
array('api/list', 'pattern'=>'`api(/<model:\w+>/<id:\d+>)*(/<model:\w+>)*`', 'GET')
了CException:
网址格式&#34;
api(/<model:\w+>/<id:\d+>)*(/<model:\w+>)*
&#34; for route&#34; api / list&#34;不是有效的正则表达式。
这里的问题是有两个相同的命名捕获<model:\w+>
。
有没有办法捕获所有模型和相关模型的列表?
编辑:
之后,玩了一下,我设法消除了这个例外,但我还没有得到完整的模型和关系列表。
新规则:
数组(&#39; api / list&#39;,&#39;模式&#39; =&gt;&#39; api(
/<model:\w+>/<id:\d+>)*(/<relation:\w+>)+
&#39;,&#39; GET&#39 ;)
使用这个我在$ _GET中得到以下数组:
网址:api / user / 1 / friends / 2 /个人资料
数组([model] =&gt; friends [id] =&gt; 2 [关系] =&gt;个人资料) 在匹配中仅返回最后一次出现的model和id。
此致