TP6管理后台实战第八天项目收尾

第八天目标:

1、各种收尾
 

进入开发:

一、输入 tp6.cn/admin 会出现错误解决

正确的办法是直接跳转到 管理后台控制中心页面,未登录则跳转到登录
 
解决办法:
建立一个app/controller 目录下 建立Error的控制器,然后在控制器中跳转。
郁闷的是:再Error.php控制器中使用 redirect跳转和header跳转都无效,只能使用 js跳转了
 
 1 namespace app\controller;
 2 
 3 class Error 
 4 {
 5     public function __call($method, $args)
 6     {
 7 
 8         if(request()->url() == "/admin/")
 9         {
10           echo "<script type='text/javascript'>window.location='/admin/index/index.html'</script>";
11         }
12 
13         return 'Error,您请求的控制器找不到!';
14     }
15 }

二、去除管理后台多余不用的菜单和内容

面子上面的功夫花费时间少,要做好看一点,别添加无效的菜单和内容。
加功能很难,但是删除很快....
 

三、关闭调试模式

将.evn 里面的 APP_DEBUG 的值修改为 FALSE
 

四、添加菜单和权限控制

思路是菜单显示权限和菜单里面的内容操作权限分开来。
分别为 一级,二级 和三级菜单。一级,二级,为菜单控制,三级为菜单下面的操作权限。
 
菜单权限控制代码:
controller/Index.php
 
 1 $data_list = Db::name('yphp_admin_power')->where("pstatus",1)->where("ptype",1)->order('porder', 'desc')->select()->toArray();
 2 foreach ($data_list as $key => $val) 
 3 {
 4     //获取二级菜单
 5     $data_list[$key]['child'] = Db::name('yphp_admin_power')->where("pstatus",1)->where("parent_id",$val['id'])->where("ptype",2)->order('porder', 'desc')->select()->toArray();
 6 }
 7 $return_data['power_list'] = $data_list;
 8 
 9 //获取用户权限
10 $return_data['powers_arr'] = array();
11 if($this->admin_info['admin_role_id'] == 0)
12 {
13     $return_data['powers'] = 'all';
14 }
15 else
16 {
17     $role_powers = Db::name('yphp_admin_role')->where("role_id",$this->admin_info['admin_role_id'])->value('role_powers');
18     if($role_powers == 'all')
19     {
20         $return_data['powers'] = 'all';
21     }
22     else
23     {
24         $return_data['powers'] = 'custom';
25         $return_data['powers_arr'] = explode(",",$role_powers);
26     }
27 }
模板文件权限控制 index/index.html

 1 {if in_array($val['id'],$powers_arr)}
 2     <li>
 3         <a href="javascript:;">
 4             <i class="iconfont left-nav-li" lay-tips="{$val['pname']}">{:base64_decode($val['picon'])}</i>
 5             <cite>{$val['pname']}</cite>
 6             <i class="iconfont nav_right">&#xe697;</i></a>
 7         <ul class="sub-menu">
 8             {foreach $val['child'] as $val2}
 9 
10                 {if in_array($val2['id'],$powers_arr)}
11                 <li>
12                     <a onclick="xadmin.add_tab('{$val2['pname']}','{:url('/admin/'.$val2['pcontroller'].'/'.$val2['paction'])}')">
13                         <i class="iconfont">&#xe6a7;</i>
14                         <cite>{$val2['pname']}</cite></a>
15                 </li>
16                 {/if}
17             
18             {/foreach}
19         </ul>
20     </li>
21 {/if}

结束的话:

至此,这个练手项目算是结束了。一共用了10天左右吧。代码上传到了 github上面;
 
 

 
 
 

但行好事,莫问前程!

本文来自博客园,作者:yangphp,转载请注明原文链接:https://www.cnblogs.com/ypeih/p/15473442.html

原文地址:https://www.cnblogs.com/ypeih/p/15473442.html