zoukankan      html  css  js  c++  java
  • fastadmin的页面是如何生成的?

    第一步:

    访问URL

    http://www.fastadmin.cc/admin/mydir/test/index?addtabs=1 

    对应的方法是admin模块,controller文件夹下的mydir文件夹下面的Test.php控制器,Test.php里面的index方法。但是打开Test.php却没有index方法,那就看Test类的父类Backend类,可是Backend类也没有,但是Backend有一句代码

    1
    load_trait('library/traits/Backend');

      

    打开application/admin/library/traits/Backend.php,找到了。

    复制代码
    /**
         * 查看
         */
        public function index()
        {
            //设置过滤方法
            $this->request->filter(['strip_tags', 'htmlspecialchars']);
            if ($this->request->isAjax())
            {
                //如果发送的来源是Selectpage,则转发到Selectpage
                if ($this->request->request('pkey_name'))  // 疑问1:pkey_name是什么
                {
                    return $this->selectpage(); // 疑问2:selectpage方法是干什么的
                }
                list($where, $sort, $order, $offset, $limit) = $this->buildparams(); // 疑问3: buildparams方法是干嘛的?
                $total = $this->model
                        ->where($where)
                        ->order($sort, $order) // 疑问4:order怎么有两个参数,是如何工作的?
                        ->count();
    
                $list = $this->model
                        ->where($where)
                        ->order($sort, $order)
                        ->limit($offset, $limit)
                        ->select();
    
                $result = array("total" => $total, "rows" => $list);
    
                return json($result);
            }
            return $this->view->fetch(); // 访问url的时候,就有数据了,那明显是执行了 if ($this->request->isAjax())这个分支了啊,可是get怎么会是ajax呢?难道是页面加载了自动发送ajax请求?
    }
    复制代码

     第二步:url访问index方法,显然先执行的是 return $this->view->fetch();   // fetch 的作用是:获取和解析模板内容 用于输出

     那么,接下去就是获取index方法对应的admin/view/mydir/index.html这个模板了

    复制代码
    <div class="panel panel-default panel-intro">
        {:build_heading()}
    
        <div class="panel-body">
            <div id="myTabContent" class="tab-content">
                <div class="tab-pane fade active in" id="one">
                    <div class="widget-body no-padding">
                        <div id="toolbar" class="toolbar">
                            {:build_toolbar()}
                            <div class="dropdown btn-group">
                                <a class="btn btn-primary btn-more dropdown-toggle btn-disabled disabled" data-toggle="dropdown"><i class="fa fa-cog"></i> {:__('More')}</a>
                                <ul class="dropdown-menu text-left" role="menu">
                                    <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=normal"><i class="fa fa-eye"></i> {:__('Set to normal')}</a></li>
                                    <li><a class="btn btn-link btn-multi btn-disabled disabled" href="javascript:;" data-params="status=hidden"><i class="fa fa-eye-slash"></i> {:__('Set to hidden')}</a></li>
                                </ul>
                            </div>
                        </div>
                        <table id="table" class="table table-striped table-bordered table-hover" width="100%">
                        </table>
                    </div>
                </div>
    
            </div>
        </div>
    </div>
    复制代码

    获取到了模板内容,接下去就是解析了。需要解析的只有四个:

    复制代码
    {:build_heading()}
    
    {:build_toolbar()}
    
    {:__('More')}
    
    {:__('Set to normal')}
    
    {:__('Set to hidden')}
  • 相关阅读:
    【 DCOS 】织云 CMDB 管理引擎技术详解
    腾讯云无服务器云函数架构精解
    深度学习在 CTR 中应用
    一文教你迅速解决分布式事务 XA 一致性问题
    小程序开发工具全新上线
    秦俊:开放 DevOps 敏捷开发套件,助力开发者驰骋云端
    张兴华:云端架构助力企业快速成长
    王磊:AI 时代物流行业的 OCR 应用
    陈杰:无服务器架构,让云端开发更纯粹
    腾讯织云:DevOps 流水线应用平台践行之路
  • 原文地址:https://www.cnblogs.com/flzs/p/9626437.html
Copyright © 2011-2022 走看看