当前位置: 首页 > news >正文

Web应用-Thinkphp框架-开发指南

Thinkphp框架

  • 二级导航分类,模板继承,内置标签
  • Public 修改
  • MVC模块化 ——访问机制
  • 传参
  • 加载模版
  • 模版引入 分离
  • Runtime 缓存文件
      • 管理员添加
      • 数据验证及验证场景 控制器 validate
  • 在sql执行(敏感操作)之前验证
  • 数据模板 分页
  • 数据表连接查询
  • TP 关联查询
    • -----------------
  • 由于是3.2 版本的教程 后面会结合5.0版本进行改进 - 主要记录思路
  • 无限分类模块实现
  • 商品模块 设计
  • Session
  • 控制器初始化
  • 模板布局
  • 模板赋值
  • 请求与响应
      • 响应
  • url及路由
    • url和路由

在这里插入图片描述
在这里插入图片描述

二级导航分类,模板继承,内置标签

模板继承

在这里插入图片描述

 {block name="title"}<title>网站标题</title>{/block}

在这里插入图片描述

 {block name="title"}<title>{$web_title}</title>{/block}

在这里插入图片描述

{block name="include"}{include file="Public:header" /}{/block}

在这里插入图片描述

 <html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>{block name="title"}标题{/block}</title> </head> <body> {block name="menu"}菜单{/block}{block name="left"}左边分栏{/block} {block name="main"}主内容{/block} {block name="right"}右边分栏{/block}{block name="footer"}底部{/block} </body> 
</html>

在这里插入图片描述

 {extend name="base" /} {block name="title"}{$title}{/block}
{block name="menu"}<a href="/" >首页</a><a href="/info/" >资讯</a> <a href="/bbs/" >论坛</a> 
{/block} 
{block name="left"}
{/block} {block name="main"} 
{volist name="list" id="vo"}<a href="/new/{$vo.id}">{$vo.title}</a><br/> {$vo.content}{/volist} {/block} {block name="right"}最新资讯: {volist name="news" id="new"}<a href="/new/{$new.id}">{$new.title}</a><br/> {/volist}{/block} {block name="footer"} {__block__} @ThinkPHP 版权所有 {/block}

在这里插入图片描述

 {block name="footer"} {__block__}@ThinkPHP 版权所有 {/block}

在这里插入图片描述

 {extend name="Public:base" /}

在这里插入图片描述

 {extend name="./Template/Public/base.html" /}

在这里插入图片描述

 {block name="title"}<title>{$title}</title>{/block} <a href="/" >首页</a><a href="/info/" >资讯</a> <a href="/bbs/" >论坛</a>

在这里插入图片描述




内置标签
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
循环输出标签
在这里插入图片描述

 $list = User::all(); $this->assign('list',$list);

在这里插入图片描述

 {volist name="list" id="vo"}{$vo.id}:{$vo.name}<br/>{/volist}

在这里插入图片描述

 {volist name="list" id="data"} {$data.id}:{$data.name}<br/> {/volist}

在这里插入图片描述

 {volist name="list" id="vo" offset="5" length='10'} {$vo.name}{/volist}

在这里插入图片描述

 {volist name="list" id="vo" mod="2" } {eq name="mod" value="1"}{$vo.name}{/eq} {/volist}

在这里插入图片描述

 {volist name="list" id="vo" mod="5" }{$vo.name} {eq name="mod" value="4"}<br/>{/eq}{/volist}

在这里插入图片描述

 {volist name="list" id="vo" empty="暂时没有数据" } {$vo.id}|{$vo.name} {/volist}

在这里插入图片描述

 $this->assign('empty','<span class="empty">没有数据</span>'); $this->assign('list',$list);

在这里插入图片描述

 {volist name="list" id="vo" empty="$empty" } {$vo.id}|{$vo.name} {/volist}

在这里插入图片描述

 {volist name="list" id="vo" key="k" } {$k}.{$vo.name} {/volist}

在这里插入图片描述

 {volist name="list" id="vo" } {$i}.{$vo.name} {/volist}

在这里插入图片描述

 {volist name="list" id="vo" }{$key}.{$vo.name} {/volist}

在这里插入图片描述

 {volist name=":fun('arg')" id="vo"} 
{$vo.name} 
{/volist}



FOREACH标签

在这里插入图片描述

 {foreach $list as $vo} {$vo.id}:{$vo.name} {/foreach}

在这里插入图片描述

 {foreach name="list" item="vo"}{$vo.id}:{$vo.name}{/foreach}

在这里插入图片描述

 {foreach name="list" item="vo" } {$key}|{$vo} {/foreach}

在这里插入图片描述

 {foreach name="list" item="vo" key="k" } {$k}|{$vo} {/foreach}

FOR标签

 {for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" } {/for}

在这里插入图片描述

 {for start="1" end="100"} {$i} {/for}
 for ($i=1;$i<100;$i+=1){echo $i; }

比较标签
在这里插入图片描述

 {比较标签 name="变量" value="值"}内容{/比较标签}

在这里插入图片描述
在这里插入图片描述

 {eq name="name" value="value"}value{/eq}
{equal name="name" value="value"}
value
{/equal}

在这里插入图片描述

 {eq name="name" value="value"} 相等{else/}不相等{/eq}

在这里插入图片描述

 {gt name="name" value="5"}value{/gt}

在这里插入图片描述

 {egt name="name" value="5"}value{/egt}

在这里插入图片描述

 {eq name="vo.name" value="5"}{$vo.name}{/eq}

在这里插入图片描述

 {eq name="vo:name" value="5"} {$vo.name} {/eq}

在这里插入图片描述

 {eq name="vo['name']" value="5"} {$vo.name}{/eq}

在这里插入图片描述

{eq name="vo:name|strlen" value="5"}{$vo.name}{/eq}

在这里插入图片描述

 {eq name="Think.get.name" value="value"}相等{else/}不相等{/eq}

在这里插入图片描述

 {eq name="vo:name" value="$a"}{$vo.name}{/eq}

在这里插入图片描述

 {compare name="name" value="5" type="eq"}value{/compare}

在这里插入图片描述

 {eq name="name" value="5" }value{/eq}

在这里插入图片描述


条件判断

SWITCH标签

 {switch name="变量" }{case value="值1" break="0或1"}输出内容1{/case} {case value="值2"}输出内容2{/case} {default /}默认情况{/switch}

在这里插入图片描述

 {switch name="User.level"} {case value="1"}value1{/case} {case value="2"}value2{/case} {default /}default {/switch}

在这里插入图片描述

 {switch name="Think.get.userId|abs"} {case value="1"}admin{/case} {default /}default {/switch}

在这里插入图片描述

 {switch name="Think.get.type"}{case value="gif|png|jpg"}图像格式{/case} {default /}其他格式 {/switch}

在这里插入图片描述

 {switch name="Think.get.userId|abs"} {case value="1" break="0"}admin{/case}{case value="2"}admin{/case}{default /}default{/switch}

在这里插入图片描述

 {switch name="User.userId"} {case value="$adminId"}admin{/case} {case value="$memberId"}member{/case}{default /}default {/switch}

在这里插入图片描述
在这里插入图片描述

 {switch $User.userId}{case $adminId}admin{/case}{case $memberId}member{/case} {/switch}



IF标签

 {if condition="($name == 1) OR ($name > 100) "} value1 {elseif condition="$name eq 2"/}value2 {else /} value3{/if}

在这里插入图片描述

 {if condition="strtoupper($user['name']) neq 'THINKPHP'"}ThinkPHP {else /}other Framework {/if}

在这里插入图片描述

 {if condition="$user.name neq 'ThinkPHP'"}ThinkPHP {else /} other Framework{/if}

在这里插入图片描述

{if condition="$user:name neq 'ThinkPHP'"}
ThinkPHP
{else /} 
other Framework{/if}

在这里插入图片描述

 {if condition="表达式"} {if (表达式)} {if 表达式}

在这里插入图片描述
IN和NOTIN

在这里插入图片描述

 $id = 1; $this->assign('id',$id);

在这里插入图片描述

 {in name="id" value="1,2,3"} id在范围内 {/in}

在这里插入图片描述

 {notin name="id" value="1,2,3"}id不在范围内 {/notin}

在这里插入图片描述

 {in name="id" value="1,2,3"} id在范围内 {else/} id不在范围内 {/in}

在这里插入图片描述

 {in name="Think.get.id" value="1,2,3"} $_GET['id'] 在范围内{/in}

在这里插入图片描述
在这里插入图片描述

 {in name="id" value="$range"}id在范围内 {/in}

在这里插入图片描述

 {in name="id" value="$Think.post.ids"} id在范围内 {/in}

BETWEEN 和 NOTBETWEEN
在这里插入图片描述

 {between name="id" value="1,10"} 输出内容1{/between}

在这里插入图片描述

 {notbetween name="id" value="1,10"}输出内容2{/notbetween}

在这里插入图片描述

 {between name="id" value="1,10"} 输出内容1 {else/} 输出内容2{/between}

在这里插入图片描述

 {between name="id" value="1,3,10"} 输出内容1 {/between}

在这里插入图片描述

 {between name="id" value="A,Z"} 输出内容1 {/between}

在这里插入图片描述

 {between name="Think.post.id" value="1,5"} 输出内容1{/between}

在这里插入图片描述

 {between name="id" value="$range"}输出内容1 {/between}

在这里插入图片描述

 {between name="id" value="$Think.get.range"} 输出内容1{/between}

RANGE

在这里插入图片描述

 {range name="id" value="1,2,3" type="in"} 输出内容1 {/range}

在这里插入图片描述
PRESENT NOTPRESENT标签
在这里插入图片描述

 {present name="name"} name已经赋值 {/present}

在这里插入图片描述

 {notpresent name="name"} name还没有赋值 {/notpresent}

在这里插入图片描述

 {present name="name"}name已经赋值 {else /} name还没有赋值{/present}

在这里插入图片描述

 {present name="Think.get.name"}$_GET['name']已经赋值 {/present}

EMPTY NOTEMPTY 标签

在这里插入图片描述

 {empty name="name"} name为空值 {/empty}

在这里插入图片描述

 {notempty name="name"} name不为空 {/notempty}

在这里插入图片描述

 {empty name="name"} name为空{else /}name不为空 {/empty}

在这里插入图片描述

{empty name="Think.get.name"} $_GET['name']为空值 {/empty}

DEFINED 标签

在这里插入图片描述

 {defined name="NAME"} NAME常量已经定义 {/defined}

在这里插入图片描述
在这里插入图片描述

 {notdefined name="NAME"} NAME常量未定义 {/notdefined}

在这里插入图片描述

 {defined name="NAME"} NAME常量已经定义 {else /} NAME常量未定义{/defined}

在这里插入图片描述


Public 修改

  • 入口文件位置

在这里插入图片描述在这里插入图片描述

  • tp3---->tp5根路径
  • tp5 —>public文件夹内在这里插入图片描述
  • 入口重定向
    域名 重定向
    更改网站目录到public—>访问index
    hosts配置

在这里插入图片描述在这里插入图片描述

MVC模块化 ——访问机制

application 应用模块 eg: index admin

模块里面 controller 控制器
在这里插入图片描述

  • 访问非索引方法 ——自己写模块
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

传参

在这里插入图片描述在这里插入图片描述

加载模版

在这里插入图片描述在这里插入图片描述

  • 没有 找到 方法fetch
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 引入空间/引入空间类元素

在这里插入图片描述

  • 继承(类用类方法)用限定方法引入类也可以
  • 使用引入空间 再继承相关类也可以
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 限定模版名称
    在这里插入图片描述
    在这里插入图片描述

模版引入 分离

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 复制模版进入

  • 输出替换 --配置模版路径 tp3–>;在这里插入图片描述在这里插入图片描述

  • 总config 和 分config之分
    在这里插入图片描述

  • 模版替换
    在这里插入图片描述在这里插入图片描述

  • 拼装路径

在这里插入图片描述

  • 静态文件 css images js
     在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 模版分离(公共文件)
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

Runtime 缓存文件

管理员添加

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 提交到 本文件下 即:list
    在这里插入图片描述
  • 打印测试 与tp3.2 不同

在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
静态方法 —insert插入传出值

在这里插入图片描述

  • 引入类
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 添加一条数据
    在这里插入图片描述在这里插入图片描述
  • 批量添加 返回成功数据量

数据验证及验证场景 控制器 validate

在这里插入图片描述

  • 后端验证 3.2字段验证 5.0以后变化很大

  • validate创建验证文件
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 控制器 validate
    实例化 验证类
    数组 验证字段/规则
    传入验证字段
    执行 验证策略
    Dump 执行结果

在sql执行(敏感操作)之前验证

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 也可以引入 继承

在这里插入图片描述

  • 打印调试验证规则
  • 创建 拦截器文件

在这里插入图片描述

  • 注意TP的namespace的根命名空间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 一个元素就是一个验证场景
    在这里插入图片描述
    在这里插入图片描述

数据模板 分页

  • 获取数据
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 创建model
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 分配到模板当中 名字/值

  • 循环输出 分配过来的数组数据
    在这里插入图片描述在这里插入图片描述

  • 空间类元素引入

  • 完全限定名称
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 分页
    在这里插入图片描述在这里插入图片描述

  • 排序 默认升序

在这里插入图片描述


在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 查询数据 一维二维数组的区别
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 调试查询功能结果
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述

  • 修改数据 需要主键——判断哪一条数据

  • 隐藏域 数据表主键
    在这里插入图片描述在这里插入图片描述

  • dump 一下 调试
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 数组传值
    在这里插入图片描述

  • 密码为空 不修改
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

  • 验证 拦截器功能
    在这里插入图片描述

在这里插入图片描述


  • 数组传值
    在这里插入图片描述
  • 看一下传值
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 查看是否解析 (还是用数组写法)
  • 初始化管理员 不可动摇
    在这里插入图片描述
  • 助手函数 (不用引用类了) 准备好那个id
  • 写入组件/where
    在这里插入图片描述在这里插入图片描述
  • 执行成功 跳回当前控制器
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 条件判断 来隐藏初始化管理员
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 模型—>引入类 使用静态方法
    在这里插入图片描述在这里插入图片描述
  • 伪静态 .html可以不带
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • id以隐藏于submit

在这里插入图片描述
在这里插入图片描述


  • 控制器首字母要大写

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  • 唯一性验证
    在这里插入图片描述
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述 在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述


在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 还是这样 重复造轮子 把上面的文档 复制 更改增加就行
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 根据策划 数据库 来写拼搭前端页面
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • res 二维数组
    在这里插入图片描述在这里插入图片描述

  • 前端 form 表单name 对应 数据库表单
    在这里插入图片描述 在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • 调试 打印 上传图片信息
    在这里插入图片描述在这里插入图片描述
  • 调试 上传结果
    在这里插入图片描述
    在这里插入图片描述
  • 拼装路径
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 关联查询
    在这里插入图片描述

数据表连接查询

在这里插入图片描述

  • 生成sql查询 -->返回二维数组 ---->分配到模板

TP 关联查询

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  • 主 从表关系 相对关联关系
    在这里插入图片描述
  • 关联好了 取数据
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 文章修改
    在这里插入图片描述在这里插入图片描述

  • 编辑
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

  • Ctrl + F5
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 隐藏域标记
    在这里插入图片描述 在这里插入图片描述

  • 这里调整 删除路径的
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述


  • 验证码类 管理登录逻辑
    TP 拓展类 (下一个完整版)- composer/官网
    在这里插入图片描述 在这里插入图片描述

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • model 模型 处理数据
    在这里插入图片描述在这里插入图片描述
  • 验证完 就执行
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 登陆跳转
    在这里插入图片描述
  • 写入session
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • 清除 session
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • 验证码配置放在公用 config内
    在这里插入图片描述
  • 样式对齐
    在这里插入图片描述
  • 字符提取 重置 点击刷新
    在这里插入图片描述在这里插入图片描述
  • 验证验证码
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

在这里插入图片描述

  • 复用功能代码 拆分 到public 控制器
    在这里插入图片描述
  • 代码继承
    在这里插入图片描述
  • base class 继承Controller 且 公用base 已经继承 think本身controller

在这里插入图片描述

  • 科学权限认证 公用机制

  • 前端页面调用
    在这里插入图片描述
    前端后台控制器 变量接收 获得数据库 二维数组数据 写入模板在这里插入图片描述
    并 排序

在这里插入图片描述

  • 导航 链接 跳转 传参-当前栏目id
    在这里插入图片描述
  • 伪静态
    在这里插入图片描述
  • 加载模板
    在这里插入图片描述
  • header 加载导航变量 引导页面
    也要 添加需要的数据 -助手函数很方便(不用引用类)

在这里插入图片描述

  • 其他页面 的操作方法
    分配页面数据
    在这里插入图片描述- 控制器复用 直接继承
    构造初始化方法 调试
    在这里插入图片描述

  • 继承
    在这里插入图片描述

  • 前端 base 复用方法

在这里插入图片描述


在这里插入图片描述

  • 根据id 查询并分页
    在这里插入图片描述
  • 数据 循环显示
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
  • 更改分页 查询
    在这里插入图片描述在这里插入图片描述
  • 调整样式

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 跳转到 文章页 分配
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 内容补全
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 时间戳变换
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述


  • 推荐 数据 查找 分配
    在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 首页 数据 分配

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 右侧栏 拆分

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  • 有一些图片 链接地址 更改

  • 标签 关键字 字符替换
    在这里插入图片描述
    在这里插入图片描述
  • 保证写进数据库 的是 英文“ ,” 分割方便
    在这里插入图片描述

在这里插入图片描述


  • 相关文章调用
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 数组合并
    在这里插入图片描述
  • 重复 匹配了 处理
    在这里插入图片描述
    在这里插入图片描述
  • 去掉 数组里的 重复
    在这里插入图片描述
    在这里插入图片描述
  • 打印调试
    在这里插入图片描述
    在这里插入图片描述
  • 去重 数组变换
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 搜索功能 及分页

在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • input 数据 查询 分配到模板
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 载入模板

在这里插入图片描述
在这里插入图片描述

  • 关键词 匹配逻辑 完整性
    在这里插入图片描述
    在这里插入图片描述

  • 分页
    在这里插入图片描述在这里插入图片描述

  • model 处理分页查询问题
    在这里插入图片描述在这里插入图片描述

  • 标签 也联系搜索
    在这里插入图片描述


  • 传参问题处理
    在这里插入图片描述

在这里插入图片描述

  • 关键词 加亮
    在这里插入图片描述

  • 后台 tag管理
    在这里插入图片描述
    数组拆分 数据调用
    在这里插入图片描述

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 控制器
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 公用base 设定
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    类似于这种MVC架构的
    可以写博客 CMS 或者公司宣传官网都可以

-----------------

由于是3.2 版本的教程 后面会结合5.0版本进行改进 - 主要记录思路

在这里插入图片描述在这里插入图片描述

  • 环境搭建
  • SVN服务器 版本控制
  • 服务器端VisualSVN 客户端 TortoiseSVN
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述
  • 导入账号

在这里插入图片描述

  • 前后台分离 操作同一个数据库
  • 创建一个WWW下的网站地址 存放源码
    在这里插入图片描述在这里插入图片描述
  • 工作拷贝
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 复制 后台框架
    在这里插入图片描述
  • 配置前后台 apache虚拟命名
    在这里插入图片描述

在这里插入图片描述

  • 前后台模板搭建
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 单独后台
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 无限分类模块设计
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • 测试数据库
    在这里插入图片描述
  • 遍历表中内容select
    在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

无限分类模块实现

  • 字段排序
  • sql连接函数 取别名
  • 结果遍历

在这里插入图片描述
调试一下
在这里插入图片描述

  • 取值 重新命名
    再调试
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述

  • 添加 前台提交

  • 添加方法
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    在这里插入图片描述

    • 数据库操作
      在这里插入图片描述在这里插入图片描述在这里插入图片描述
  • AJAX 无限分类
    在这里插入图片描述在这里插入图片描述

  • js写的
    在这里插入图片描述在这里插入图片描述

  • 通过AJAX到数据库 取值
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • public 取数据 需要的字段 返回数组
    变为json对象格式
    在这里插入图片描述

  • 传过去Id
    在这里插入图片描述
    在这里插入图片描述

  • 信息传回 ajax
    后台 删除方法
    在这里插入图片描述在这里插入图片描述


商品模块 设计

在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  • 图片上传 异步处理

  • 添加商品
    在这里插入图片描述

  • 测试数据
    在这里插入图片描述
    在这里插入图片描述

  • 准备模板在这里插入图片描述

Session

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

控制器初始化

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模板布局

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

在这里插入图片描述

模板赋值

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

请求与响应

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述


响应

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

url及路由

在这里插入图片描述

url和路由

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述

  • 参数调用
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 命名规范
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 在这里插入图片描述 在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 定义路由
    在这里插入图片描述
    在这里插入图片描述

    • 路由 + 传参
      SEO不友好 搜索引擎收录不到 抓不到三层
      在这里插入图片描述
      比较友好 收录
      在这里插入图片描述
  • 定义路由
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 s在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述 在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

  • 生成Url地址
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
    在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

http://www.lryc.cn/news/190474.html

相关文章:

  • LeetCode【300】最长递增子序列
  • JRebel在IDEA中实现热部署 (JRebel实用版)
  • uniapp微信小程序之分包异步化之组件分包
  • Nacos(替代Eureka)注册中心
  • FHRP首跳冗余的解析
  • 垂直分表为什么能够加快查询效率?
  • Linux网络基础知识全面总结
  • 【arm实验2】按键中断事件控制实验
  • 【数据结构-栈 二】【单调栈】每日温度、接雨水
  • 基于Keil a51汇编 —— 控制语句
  • 单目标优化算法:火鹰优化算法(Fire Hawk Optimizer,FHO)求解23个函数--提供MATLAB代码
  • 数据集笔记:分析OpenCellID 不同radio/ create_time update_time可视化
  • 【特纳斯电子】血氧饱和度监测仪设计-实物设计
  • 雪花算法生成ID传到前端之后精度丢失问题
  • Windows 10 - 适用于各种服务(Redis、MySQL)的文件迁移到其他目录后,导致的各种服务找不到的问题 - 注册服务 - 关闭服务 - 重启服务
  • Java 串行接口调用优化
  • 【Java 进阶篇】JavaScript `typeof` 操作符详解
  • electron之进程间通信
  • Linux网络编程:UDP协议和TCP协议
  • 【SCS-CN】SCS-CN模型中CN值的确定
  • 【C++】继承 ① ( 面向对象特点 | 类之间的关系 | 单继承与多继承 | 继承关系特性 )
  • 虹科方案 | 虹科ATTO加速虚拟存储管理
  • Docker项目部署lnmp+wordpress
  • leetcode 121. 买卖股票的最佳时机、122. 买卖股票的最佳时机 II
  • 系统架构设计:5 论软件的可靠性设计
  • 03 独立看门狗 hal库 stm32cubemx
  • 大数据学习(6)-hive底层原理Mapreduce
  • SQLite:TIMESTAMP类型使用
  • 迅镭激光GI系列高功率激光切割机成功中标覆铜板龙头企业HZ公司
  • 基于SSM的网络安全宣传网站设计与实现