老莫的笔记本  
  
查看: 1192|回复: 2

跳转地址栏的简写

[复制链接]

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
发表于 2018-8-26 18:40:57 | 显示全部楼层 |阅读模式
刚遇到个郁闷的问题:
我在一个栏目里写的 跳转路径是  admin.php/admin/host/clearbase  
这个 万一我哪天要想起来改掉  入口文件,岂不是各个都要改?
所以 我决定把入口文件单独提出来 也就是模板的输入, 不过想想,我何不用绝对地址进行跳转地址的写入?
为啥要这样呢?要用绝对地址?  
在写这个的时候, 因为绝对地址较相对地址比较安全;
那么,问题来了:

第一: 怎么弄出来绝对地址的路径?  我想了想,
1.先在 加载 判断login的  文件中Base.php 加入一个 获取 域名的方式,gethost
2 在做login 判断的时候 进行赋值【就是调用这个gethost 方法】,存入到 base 本身的变量中 $host ,
3.接着在需要的方法中 使用assign 输出这个值【当时懒 存的都是数组】
4.在模板中展示
  1. public function gethost()
  2.     {
  3.         // 存出主站信息 读取信息后 存出信息
  4.         $this->host =Webset::get(1)->getData();
  5.         return $this->host;
  6.     }
  7.     public function _initialize(){
  8.         $this->host = Webset::get(1)->getData();
  9.         if(!Session::has('admin')){
  10.             $this->error('登录超时,请重新登录','http://www.laomo.com/admin.php/admin-login');
  11.         }
  12.     }
复制代码
Base.php
  1. public function index()
  2.     {
  3.         //先取出主站信息,然后赋值给模板 模板赋值
  4.         $this->assign('host',$this->host);
  5.         return $this->fetch();
  6.     }
复制代码
Home.php
  1.   <div class="layui-logo" lay-href="home/console.html">
  2.             <span>{$host['title']}</span>
  3.           </div>
  4.          
  5.           <ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
  6.             <li data-name="home" class="layui-nav-item layui-nav-itemed">
  7.               <a href="javascript:;" lay-tips="主页" lay-direction="2">
  8.                 <i class="layui-icon layui-icon-home"></i>
  9.                 <cite>主页{$Think.config.myadmin['a']}</cite>
复制代码
home/index.html

然后我就想到了入口文件 使用变量给替换掉, 【就是字符串的替换】
我当时很简单的想到了一个想法, 我在 config 中丢入一个数组, 里面全是我自己定义的东西,
然后我在模板中 使用   下面这句  丢出 我的配置项  别说真TM的长
  1. {$Think.config.myadmin['a']}
复制代码


回复

使用道具 举报

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
 楼主| 发表于 2018-8-26 18:55:37 | 显示全部楼层
不得不说,我脑袋里都是些啥?
然后呢,我又想到了 动态配置配置项,因为动态配置,那么也就无需在申明变量啥的了,可以配置完后直接在模板中输出配置项
  1.     public function _initialize(){
  2.         // 动态配置
  3.         Config::set('host',Webset::get(1)->getData());;
  4.         if(!Session::has('admin')){
  5.             $this->error('登录超时,请重新登录','http://www.laomo.com/admin.php/admin-login');
  6.         }
  7.     }
复制代码
回复

使用道具 举报

662

主题

878

帖子

5145

积分

超级版主

Rank: 8Rank: 8

积分
5145
 楼主| 发表于 2018-8-26 23:19:38 | 显示全部楼层
比较好玩的是: 我后来想想,如果我在login 的判断请求之前就配置,则默认每一次请求我都在重新配置,那就不对了;不可能我访问一遍就链接一遍数据库动态配置一项。
然后我决定在 base 中添加属性 $host  既然别的控制器都是继承这个类,那我就在这个类里加给gethost 方法,这个方法的作用是给host 赋值成一条数组,然后返回host
在别的类中,我若调用 则直接调用$this->gethost() 方法;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表