我用PHP MVC试验和我stucked有以下问题。 我的请求,路由器类是非常简单的,我谨向主题,可以处理来自子文件夹控制呼叫和控制器类的功能应该能够拿起URL变量把它扔GET和POST。
我的路由器看起来它遵循
class Router{
public static function route(Request $request){
$controller = $request->getController().'Controller';
$method = $request->getMethod();
$args = $request->getArgs();
$controllerFile = __SITE_PATH.'/controllers/'.$controller.'.php';
if(is_readable($controllerFile)){
require_once $controllerFile;
$controller = new $controller;
if(!empty($args)){
call_user_func_array(array($controller,$method),$args);
}else{
call_user_func(array($controller,$method));
}
return;
}
throw new Exception('404 - '.$request->getController().'--Controller not found');
}
}
和Request类
private $_controller; private $_method; private $_args; public function __construct(){ $parts = explode('/',$_SERVER['REQUEST_URI']); $this->_controller = ($c = array_shift($parts))? $c: 'index'; $this->_method = ($c = array_shift($parts))? $c: 'index'; $this->_args = (isset($parts[0])) ? $parts : array(); } public function getController(){ return $this->_controller; } public function getMethod(){ return $this->_method; } public function getArgs(){ return $this->_args; } }
问题是:当我尝试发送扔阿贾克斯,变量的控制方法,这是不是因为它的URL结构的认可。 例如
index/ajax?mod_title=shop+marks&domain=example
如果它看起来只是接受
index/ajax/shop+mark/example