周大胖子 发表于 2018-8-26 18:40:57

跳转地址栏的简写

刚遇到个郁闷的问题:
我在一个栏目里写的 跳转路径是admin.php/admin/host/clearbase
这个 万一我哪天要想起来改掉入口文件,岂不是各个都要改?
所以 我决定把入口文件单独提出来 也就是模板的输入, 不过想想,我何不用绝对地址进行跳转地址的写入?
为啥要这样呢?要用绝对地址?
在写这个的时候, 因为绝对地址较相对地址比较安全;
那么,问题来了:

第一: 怎么弄出来绝对地址的路径?我想了想,
1.先在 加载 判断login的文件中Base.php 加入一个 获取 域名的方式,gethost
2 在做login 判断的时候 进行赋值【就是调用这个gethost 方法】,存入到 base 本身的变量中 $host ,
3.接着在需要的方法中 使用assign 输出这个值【当时懒 存的都是数组】
4.在模板中展示
public function gethost()
    {
      // 存出主站信息 读取信息后 存出信息
      $this->host =Webset::get(1)->getData();
      return $this->host;
    }

    public function _initialize(){
      $this->host = Webset::get(1)->getData();
      if(!Session::has('admin')){
            $this->error('登录超时,请重新登录','http://www.laomo.com/admin.php/admin-login');
      }
    }Base.php

public function index()
    {
      //先取出主站信息,然后赋值给模板 模板赋值
      $this->assign('host',$this->host);
      return $this->fetch();
    }Home.php

<div class="layui-logo" lay-href="home/console.html">
            <span>{$host['title']}</span>
          </div>
         
          <ul class="layui-nav layui-nav-tree" lay-shrink="all" id="LAY-system-side-menu" lay-filter="layadmin-system-side-menu">
            <li data-name="home" class="layui-nav-item layui-nav-itemed">
            <a href="javascript:;" lay-tips="主页" lay-direction="2">
                <i class="layui-icon layui-icon-home"></i>
                <cite>主页{$Think.config.myadmin['a']}</cite>home/index.html

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


周大胖子 发表于 2018-8-26 18:55:37

不得不说,我脑袋里都是些啥?
然后呢,我又想到了 动态配置配置项,因为动态配置,那么也就无需在申明变量啥的了,可以配置完后直接在模板中输出配置项
    public function _initialize(){
      // 动态配置
      Config::set('host',Webset::get(1)->getData());;
      if(!Session::has('admin')){
            $this->error('登录超时,请重新登录','http://www.laomo.com/admin.php/admin-login');
      }
    }

周大胖子 发表于 2018-8-26 23:19:38

比较好玩的是: 我后来想想,如果我在login 的判断请求之前就配置,则默认每一次请求我都在重新配置,那就不对了;不可能我访问一遍就链接一遍数据库动态配置一项。
然后我决定在 base 中添加属性 $host既然别的控制器都是继承这个类,那我就在这个类里加给gethost 方法,这个方法的作用是给host 赋值成一条数组,然后返回host
在别的类中,我若调用 则直接调用$this->gethost() 方法;
页: [1]
查看完整版本: 跳转地址栏的简写