Yii PHP Rest URL模式与URL中的相关模型匹配

时间:2015-09-06 18:13:41

标签: php regex rest yii url-routing

我正在尝试创建一个允许获取相关模型的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。

此致

0 个答案:

没有答案