以上地址中,使用CONTROLLER_NAME获取控制器,值为Kehu,Kehu为分组的名字,正确的应该是User,为什么会出现这种情况
CONTROLLER_NAME的值是Kehu
MODULE_NAME的值也是Kehu
这是什么原因
url模式是兼容模式,求指点
tp3.2.2
测试了一下,不知道为什么,
如果设置了下面的值
'MODULE_ALLOW_LIST' => array('Admin,Kehu'),
'DEFAULT_MODULE' => 'Admin',
则CONTROLLER_NAME='Kehu'
如果将 'MODULE_ALLOW_LIST' => array('Admin,Kehu'),去掉
使用 'MODULE_DENY_LIST' => array('Common', 'Install'),则可以获取到正确的结果CONTROLLER_NAME='User'
function get_menu_by_url($controller = CONTROLLER_NAME) {//这里获取的CONTROLLER_NAME尽然是分组名称,跟MODULE_NAME的值一样
$Menu = M('menu');
$id = $Menu->where("module='admin' AND pid !=0 AND url like '{$controller}/" . ACTION_NAME . "%'")->getField('id');
if (empty($id)) {
$id = $Menu->where("module='admin' AND pid =0 AND url like '{$controller}/" . ACTION_NAME . "%'")->getField('id');
}
if (empty($id)) {
$this->error('非法链接', Cookie('__forward__'));
} else {
return $this->get_menu($id);
}
} 最佳答案