zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    UICollectionView中使用 UICollectionViewFlowLayout进行布局(模仿苹果相册)
    使用CocoaPods被卡住:Updating local specs repositories
    【原】iOS 同时重写setter和getter时候报错:Use of undeclared identifier '_name';did you mean 'name'
    iOS 设置不同的字体颜色
    使用java代码,动态给TextView设置drawable
    格式化浮点数(保留指定位数)
    监听输入法的出现和隐藏
    dp和px的转换
    获取状态栏高度
    获取在attr.xml中声明的主题样式
  • 原文地址:https://www.cnblogs.com/ypeih/p/15473442.html
Copyright © 2011-2022 走看看