Onethink中获取分组菜单,分组是中文名,改用SqlServer数据库后,如何查询出相应的菜单名,下面参数$g是中文
// 按照分组生成子菜单树
foreach ($groups as $g) {
$map = array('group'=> $g);
if(isset($to_check_urls)){
if(empty($to_check_urls)){
// 没有任何权限
continue;
}else{
$map['url'] = array('in', $to_check_urls);
}
}
$map['pid'] = $item['id'];
$map['hide'] = 0;
if(!C('DEVELOP_MODE')){ // 是否开发者模式
$map['is_dev'] = 0;
}
// p($map);die;
$menuList = M('Menu')->where($map)->field('id,pid,title,url,tip,sort')->order('sort asc')->select();
p(M()->getlastsql());
打印出来后的语句
SELECT T1.* FROM (SELECT thinkphp.*, ROW_NUMBER() OVER ( ORDER BY sort asc) AS ROW_NUMBER FROM (SELECT [id],[pid],[title],[url],[tip],[sort] FROM [onethink_menu] WHERE [group] = '数据备份' AND [pid] = 68 AND [hide] = 0 AND [is_dev] = 0 ) AS thinkphp) AS T1
正常SQLSERVER里面中文nvarchar类型,要加个大写的N
SELECT T1.* FROM (SELECT thinkphp.*, ROW_NUMBER() OVER ( ORDER BY sort asc) AS ROW_NUMBER FROM (SELECT [id],[pid],[title],[url],[tip],[sort] FROM [onethink_menu] WHERE [group] = N'数据备份' AND [pid] = 68 AND [hide] = 0 AND [is_dev] = 0 ) AS thinkphp) AS T1
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。