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.hqwc.cn/news/132488.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

nextjs构建服务端渲染,同时使用Material UI进行项目配置

一、创建一个next项目 使用create-next-app来启动一个新的Next.js应用&#xff0c;它会自动为你设置好一切 运行命令: npx create-next-applatest 执行结果如下&#xff1a; 启动项目&#xff1a; pnpm dev 执行结果&#xff1a; 启动成功&#xff01; 二、安装Mater…

深入理解强化学习——标准强化学习和深度强化学习

分类目录&#xff1a;《深入理解强化学习》总目录 强化学习的历史 早期的强化学习&#xff0c;我们称其为标准强化学习。最近业界把强化学习与深度学习结合起来&#xff0c;就形成了深度强化学习&#xff08;Deep ReinforcemetLearning&#xff09;。因此&#xff0c;深度强化…

C语言中常用的字符串处理函数(strlen、strcpy、strcat、strcmp)

文章目录 写在前面1. strlen1.1 函数介绍1.2 模拟实现 2. strcpy2.1 函数介绍2.2 模拟实现 3. strcat3.1 函数介绍3.2 模拟实现 4. strcmp4.1 函数介绍4.2 模拟实现 写在前面 本篇文章介绍了C语言中常用的字符串处理函数&#xff0c;包括strlen、strcpy、strcat和strcmp。文章…

[开源]基于流程编排的自动化测试工具,插件驱动,测试无限可能

一、开源项目简介 流程编排&#xff0c;插件驱动&#xff0c;测试无限可能 一款基于流程编排的自动化测试工具 二、开源协议 使用Apache-2.0开源协议 三、界面展示 四、功能概述 在软件开发旅程中&#xff0c;测试流程的管理和执行常常是复杂且耗时的挑战。传统测试工具主…

云原生Kubernetes:K8S集群版本升级(v1.20.15 - v1.22.14)

目录 一、理论 1.K8S集群升级 2.集群概况 3.升级集群&#xff08;v1.21.14&#xff09; 4.验证集群&#xff08;v1.21.14&#xff09; 5.升级集群&#xff08;v1.22.14&#xff09; 6.验证集群 (v1.22.14) 二、实验 1.升级集群&#xff08;v1.21.14&#xff09; 2.验…

JAVA学习第一天,java的运行方式

对未来很迷茫&#xff0c;不知道以后能出去干什么&#xff0c;好像掌握的东西很少&#xff0c;从今天开始学习学习java吧&#xff0c;让自己充实起来&#xff0c;记录一下。 jav…

python结合excel数据轻松实现接口自动化测试

在刚刚进入测试行业的时候&#xff0c;最开始也是做功能测试&#xff0c;我想很多伙伴和我一样&#xff0c;觉得自动化测试都很高端&#xff0c;很神秘。迫不及待的想去学习作自动化测试。 以前比较常用数据库python做自动化&#xff0c;后面发现excel个人觉得更加适合&#x…

js的indexOf方法

一、数组调用 indexOf() 方法可返回数组中某个指定的元素位置。 该方法将从头到尾地检索数组&#xff0c;看它是否含有对应的元素。开始检索的位置在数组 start 处或数组的开头&#xff08;没有指定 start参数时&#xff09;。如果找到一个 item&#xff0c;则返回 item 的第一…

新手如何快速上手HTTP爬虫IP?

对于刚接触HTTP爬虫IP的新手来说&#xff0c;可能会感到有些困惑。但是&#xff0c;实际上HTTP爬虫IP并不复杂&#xff0c;只要掌握了基本的操作步骤&#xff0c;就可以轻松使用。本文将为新手们提供一个快速上手HTTP爬虫IP的入门指南&#xff0c;帮助您迅速了解HTTP爬虫IP的基…

帆软报表-SQL片段报错处理

当发现好端端的 SQL 片段&#xff0c;在数据库命令行正常运作、但是在帆软报表预览各种报错的时候&#xff1a;请先停止复制你的 SQL 片段。 然后&#xff0c;在【帆软报表的数据源编辑器中】&#xff0c;【全部逐个手敲】一遍你需要的字段和逻辑。记得点击保存。帆软报表版本 …

新闻软文稿件媒体发布怎么做?纯干货

新闻软文稿件需要投放在正确的媒体上&#xff0c;才能获得更好的宣传推广效果&#xff0c;新闻软文稿件媒体发布怎么做&#xff1f;今天伯乐网络传媒就来给大家讲解一下&#xff0c;纯干货&#xff0c;建议收藏起来慢慢看。 一、媒体选择与分析 1. 确定目标媒体 在进行新闻软…

吃瓜神奇!企查查、天眼查、天眼销,到底哪家强?

最近&#xff0c;我发现很多人在讨论查企业信息的工具&#xff0c;什么企查查、天眼查、天眼销等&#xff0c;到底哪家强呢&#xff1f; 首先&#xff0c;我们来简单了解一下这些工具。企查查是一款可以帮助用户查询企业信息的工具&#xff0c;通过输入关键词&#xff0c;可以搜…