1
Im新與Yii和我試圖實現parseUrl管理URL版本的URL。 我想將/api/1.0/...重定向到控制器apiV1.0。Yii Api版本urlManager w/parseUrl
Main.php(urlManager規則):
...
array('class' => 'application.components.ApiVersion'),
...
ApiVersion.php:
<?php
class ApiVersion extends CBaseUrlRule
{
public $connectionID = 'db';
public function createUrl($manager,$route,$params,$ampersand)
{
if ($route==='car/index')
{
if (isset($params['manufacturer'], $params['model']))
return $params['manufacturer'] . '/' . $params['model'];
else if (isset($params['manufacturer']))
return $params['manufacturer'];
}
return false; // this rule does not apply
}
public function parseUrl($manager,$request,$pathInfo,$rawPathInfo)
{
if (preg_match('%^(\w+)(/(\w+))?$%', $pathInfo, $matches))
$url = $match[1] . $match[2]; // BUILD YOUR URL (controllerName/actionName)
$this->redirect(array($url));
}
return false;
}
}
林很失去了它是如何工作的,有人可以幫助我嗎?
Hi darkheir。它仍然無法正常工作,我應該在函數createUrl中對嗎? –
我編輯了第一篇文章。 –
在編輯時,createUrl和parseUrl都不適合你需要做的事情!你只是從文檔中拿出來的! – darkheir