我创建了自己的类,扩展了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'。
为什么会这样?任何猜测?