qiaotouhe 2012-06-12 01:32:23 2582次浏览 4条回复 0 0 0

我用的后台的目录形式,backend放在protected目录下面

我发现有些url地址比如: backend.php?r=category/update 显示没有授权。 跟踪测试。

[attach]763[/attach] 调用 CWebApplication.php(135): CWebApplication->runController('category/update') 传进去的是 category/update

[attach]764[/attach] dump 一下 看结果

[attach]765[/attach] 发现出来的是 index/error

请强哥指教,这个中间是如何处理的, 当我访问 backend.php?r=category/index 的时候 一切又是正常的

两个方法:

public function processRequest()
{
		if(is_array($this->catchAllRequest) && isset($this->catchAllRequest[0]))
		{
			$route=$this->catchAllRequest[0];
			foreach(array_splice($this->catchAllRequest,1) as $name=>$value)
				$_GET[$name]=$value;
		}
		else
		{
			$route=$this->getUrlManager()->parseUrl($this->getRequest());
		}
		$this->runController($route);    //第一张截图处 代码
	}

	public function runController($route)
	{
	    var_dump($route);  //第2张截图 代码
	    
		if(($ca=$this->createController($route))!==null)
		{
			list($controller,$actionID)=$ca;
			$oldController=$this->_controller;
			$this->_controller=$controller;
			$controller->init();
			$controller->run($actionID);
			$this->_controller=$oldController;
		}
		else
			throw new CHttpException(404,Yii::t('yii','Unable to resolve the request "{route}".',
				array('{route}'=>$route===''?$this->defaultController:$route)));
}
您需要登录后才可以回复。登录 | 立即注册