7分类控制器与模板制作

7分类控制器与模板制作

破附粒椒程龚侩睦男韶诺害户


文章分类表结构及数据

7分类控制器与模板制作第1张

7分类控制器与模板制作第2张

其中字段cate_type中0表示单页面   1 表示列表页


创建模型类Category.php

7分类控制器与模板制作第3张

代码:

<?php
namespace app\common\model;
//引入系统模型
use think\Model;

//要使用模型必须继承系统模型
class Category extends Model
{
    //配饰数据库的连接参数,因为使用了个性化的字符串连接  所以这里要写
    //直接使用tp的数据库连接方式 这里就不用写
    protected $connection="db_qiye";

    //配置数据表
    protected $table="category";
    //设置主键
    protected $pk="cate_id";
}

创建控制器Category.php

7分类控制器与模板制作第4张

代码:

<?php
namespace app\admin\controller;

//引入公共控制器
use app\common\controller\Base;
//引入模板
use app\common\model\Category as CateModel;

class Category extends Base
{
    public function index()
    {
        //显示分类表中的所有数据
        // 1.获取分页信息
        //  代码解释:all()查询分页表中的所有数据   按照id 升序排列

        $cates = CateModel::all(function($query){
            $query->order('cate_id','asc');
        });
        // 2.模板赋值
        $this->view->cates=$cates;

        // 3.渲染模板
        return $this->view->fetch();
    }

    
}

创建category模板目录  创建index.html(直接复制模板目录site里面的index.html即可)

7分类控制器与模板制作第5张

修改左侧菜单left_nav.html的url 指向分类模板

7分类控制器与模板制作第6张

点击左侧菜单分类列表

7分类控制器与模板制作第7张


因为当前的分类模板不足以显示数据  所以使用x-admin的admin-list.html替换当前模板index.html里面的内容

7分类控制器与模板制作第8张

查看

7分类控制器与模板制作第9张

在模板index.html中输出数据

{include file="common@header"}
    <div class="x-nav">
      <span class="layui-breadcrumb">
        <a href="">首页</a>
        <a href="">分类</a>
        <a>
          <cite>分类管理</cite></a>
      </span>
      <a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新">
        <i class="layui-icon" style="line-height:30px">ဂ</i></a>
    </div>
    <div class="x-body">
      <xblock>
        <button class="layui-btn" onclick="x_admin_show('添加用户','./admin-add.html')"><i class="layui-icon"></i>添加</button>
        <span class="x-right" style="line-height:40px">共有数据:88 条</span>
      </xblock>
      <table class="layui-table">
        <thead>
          <tr>
            <th>ID</th>
            <th>栏目名称</th>
            <th>排序</th>
            <th>类型</th>
            <th>操作</th>
        </thead>
        <tbody>
          <!-- 循环输出数据 -->
          <!-- name="cates":接收的数据的变量名称  id="cate" 使用变量cate来输出cates中的数据 -->
          {volist name="cates" id="cate"}
          <tr>
            <td>{$cate.cate_id}</td>
            <td>{$cate.cate_name}</td>
            <td>{$cate.cate_order}</td>
            <td>{$cate.cate_type}</td>
            <td class="td-manage">
              <a title="编辑"  onclick="x_admin_show('编辑','admin-edit.html')" href="javascript:;">
                <i class="layui-icon">&#xe642;</i>
              </a>
              <a title="删除" onclick="member_del(this,'要删除的id')" href="javascript:;">
                <i class="layui-icon">&#xe640;</i>
              </a>
            </td>
          </tr>
        {/volist}

        </tbody>
      </table>

    </div>
    <script>
      layui.use('laydate', function(){
        var laydate = layui.laydate;
        
        //执行一个laydate实例
        laydate.render({
          elem: '#start' //指定元素
        });

        //执行一个laydate实例
        laydate.render({
          elem: '#end' //指定元素
        });
      });

       /*用户-停用*/
      function member_stop(obj,id){
          layer.confirm('确认要停用吗?',function(index){

              if($(obj).attr('title')=='启用'){

                //发异步把用户状态进行更改
                $(obj).attr('title','停用')
                $(obj).find('i').html('&#xe62f;');

                $(obj).parents("tr").find(".td-status").find('span').addClass('layui-btn-disabled').html('已停用');
                layer.msg('已停用!',{icon: 5,time:1000});

              }else{
                $(obj).attr('title','启用')
                $(obj).find('i').html('&#xe601;');

                $(obj).parents("tr").find(".td-status").find('span').removeClass('layui-btn-disabled').html('已启用');
                layer.msg('已启用!',{icon: 5,time:1000});
              }
              
          });
      }

      /*用户-删除*/
      function member_del(obj,id){
          layer.confirm('确认要删除吗?',function(index){
              //发异步删除数据
              $(obj).parents("tr").remove();
              layer.msg('已删除!',{icon:1,time:1000});
          });
      }



      function delAll (argument) {

        var data = tableCheck.getData();
  
        layer.confirm('确认要删除吗?'+data,function(index){
            //捉到所有被选中的,发异步进行删除
            layer.msg('删除成功', {icon: 1});
            $(".layui-form-checked").not('.header').parents('tr').remove();
        });
      }
    </script>
  </body>

</html>

查看:

7分类控制器与模板制作第10张

将类型显示为单页面和列表页

在模型类中设置获取器

7分类控制器与模板制作第3张

<?php
namespace app\common\model;
//引入系统模型
use think\Model;

//要使用模型必须继承系统模型
class Category extends Model
{
    //配饰数据库的连接参数,因为使用了个性化的字符串连接  所以这里要写
    //直接使用tp的数据库连接方式 这里就不用写
    protected $connection="db_qiye";

    //配置数据表
    protected $table="category";
    //设置主键
    protected $pk="cate_id";

    //分页类型的获取器
    //将category表中cate_type字段依据值进行转换显示 0显示为单页面  1显示为列表页
    //函数命名规则getAttr是固定格式  中间是字段名  必须以驼峰命名法命名  这里将cate_type
    //这里将cate_type  使用驼峰命名为CateType
    protected function getCateTypeAttr($type)
    {
        return  $type ? "列表页": "单页面";
    }
}

注意:获取器的命名规则:

分页类型的获取器
将category表中cate_type字段依据值进行转换显示 0显示为单页面  1显示为列表页
函数命名规则getAttr是固定格式  中间是字段名  必须以驼峰命名法命名  这里将cate_type
这里将cate_type  使用驼峰命名为CateType
查看:

7分类控制器与模板制作第12张