createUrl在扩展的CBaseUrlRule类中无法正常工作

时间:2014-04-10 13:07:30

标签: yii yii-url-manager

我创建了自己的类,扩展了CBaseUrlRule来管理网站上的某些页面。结果类代码是

class HotelUrlRule extends CBaseUrlRule {

public function parseUrl($manager,$request,$pathInfo,$rawPathInfo) {
    if(isset($_GET['id'])) {
        if (($_GET['id'] != 0) && ($pathInfo == 'hotel')) {
            return 'hotel/index';
        }
    }
    return false;
}

public function createUrl($manager,$route,$params,$ampersand) {

    if ($route == 'hotel/index') {
        Yii::import('application.controllers.SearchController');
        $searcher = new SearchController($this, NULL);
        $hotelRaw = $searcher->actionGetHotelInformation($_GET['id']);
        $hotelRaw = $hotelRaw['GetHotelInformationResult'];
        $hotelName = $hotelRaw['Name'];
        $hotelName = preg_replace('%(\s)%', '-', $hotelName);
        return 'hotel/' . $hotelName;
    }

    return false;
}
}

parseUrl中的条件($ _GET [' id']!= 0)&& ($ pathInfo ==' hotel')返回' true'并且createUrl中的条件($ route ==' hotel / index')返回' false'。 $ route的Var_dump是' admin / auth'。

为什么会这样?任何猜测?

0 个答案:

没有答案