zf 如何设置才能够使得ACTION支持大小写混写
查看代码部分控制器,可以改。还有view层调用等信息,改起来比较麻烦。
(自己无法确定的答案别发,重复到答案别发 其他框架爱好者欢迎参与解决)
非常感谢!
codeigniter ZendFramework php thinkphp cakephp
kasumi2
11 years, 11 months ago
Answers
这个我之前改过,只需要改一个地方就行,见我的博客 http://vb2005xu.iteye.com/blog/698682 下面的评论 2,3 处;
评论2 是ZF早期的版本,那个解决方案早已被废弃,下面录出评论3
你所有的控制器 继承我这个类就行了
/**
* 增强型的 控制器基类
* 1. 忽略 action名称大小写,重写了 dispatch 方法,彻底移除了对 useCaseSensitiveActions 参数的设置
*
*
* @author KenXu
*
*/
class Zend_Custom_Controller_Action extends Zend_Controller_Action {
/**
*
* @var array
*/
protected $_noCaseSensitiveClassMethods = null ;
/**
* Dispatch the requested action
*
* @param string $action Method name of action
* @return void
*/
public function dispatch($action)
{
$this->_helper->notifyPreDispatch();
$this->preDispatch();
if ($this->getRequest()->isDispatched()) {
if (null === $this->_classMethods) {
$this->_classMethods = get_class_methods($this);
$this->_noCaseSensitiveClassMethods = array_map('strtolower', $this->_classMethods);
}
$_k = array_search(strtolower($action),$this->_noCaseSensitiveClassMethods);
if ($_k !== false){
$action = $this->_classMethods[$_k];
$this->$action();
} else {
$this->__call($action, array());
}
$this->postDispatch();
}
$this->_helper->notifyPostDispatch();
}
}
月雲華風_双影
answered 11 years, 11 months ago