ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
author:咔咔wechat:fangkangfk 
author:咔咔wechat:fangkangfk在俩个表双查数据的时候我们一般使用的都是关联预加载,但是假如我们有一个模糊查询的功能时,这个时候关联预加载就挂了所以只能使用join /** * author:咔咔 * * 获取单个专题下的视频 * @param $where 查询条件 * @r...
author:咔咔wechat:fangkangfk可以看出数据在之前被修改过,使用了数据重组将数据的key值等于了数据的id,所以数组返回的时候下标就不从0开始了,就出现了渲染不出来的结果所以在最后返回的时候,需要将数据的索引重新归0...
author:咔咔wechat:fangkangfktable为表名$data = Db::query('SHOW FULL COLUMNS FROM '.$table);
author:咔咔wechat:fangkangfk有没有在添加跟修改的时候很烦,需要写很多页面,修改还需要追加数据,很烦,很烦下来就解决这样的问题,所有模块的添加,修改,查看,都使用同一个模板首先从数据库设计开始注释解释:域名地址:这个在添加或者修改时在lable标签里边写的add=text:这个最终会以这个判断这个字段是什么类型,并且显示不同的标签...
author:咔咔wechat:fangkangfk在之前我们使用了ajax请求的方式做了一次模糊搜索,下面是链接地址https://blog.csdn.net/fangkang7/article/details/85233164今天我们写一个get请求方式的模糊搜索注意点:前端点击搜索后,搜索条件依然需要在前端显示条件是需要做是否存在判断后台之需...
author:咔咔wechat:fangkangfk 可以直接写方法名即可<a class="layui-btn mgl-20 .j-kaka type checked" attr="1" href="{:url('index')}?showType=1"> Banner广告</a>
author:咔咔wechat:fangkangfk需求:点击广告分类,在点击查询,需要查询本分类下的广告首先我们需要固定的就是样式问题第一次进入的时候显示的是全部的广告,那么我们的全部广告就需要被点击的样式,所以我们直接就给全部广告加了一个checked点击全部广告是不需要条件的,所有地址没有追加参数点击其他的广告分类,带上各自在数据...
author:咔咔wechat:fangkangfk工具地址;https://download.csdn.net/download/fangkang7/10890831案例:效果:
author:咔咔wechat:fangkangfk 
author:咔咔wechat:fangkangfk数据库设计案例:需求:根据专题ID查询广告图ID,然后拿着这个ID去banner模型里边进行获取数据分解:这个业务需求需要做俩件事,第一件事就是根据专题id获取广告id数据获取到之后,我们都知道TP5模型里边有一个根据主键查询的方法all,但是这个方法是直接传主键的,所以我们需要对...
author:咔咔wechat:fangkangfk$className = json_encode($className,JSON_UNESCAPED_UNICODE);
author:咔咔wechat:fangkangfkhtml导航单显示{include file="../../../application/admin/view/public/head" /}<style type="text/css"> .hs-iframe{width:100%;height:100%;} .layui-tab{positi...
author:咔咔wechat:fangkangfk前提:在使用实例化模型后的查询find的查询:这样的查询最后返回的数据是对象,我们在前台模板输出的时候是没办法输出的,所以我们需要将其转为数组即可( toArray() )下来看看select查询:我们可以看到是一个数据集,在模板输出这一块数据集跟数组的输出是一样的,所以不需要处理...
author:咔咔wechat:fangkangfk我们先来看一个案例:这是一个实例化模型后的一个查询,我们也可以看到数据结果是是一个对象,这样的数据我们大多数都是在修改的时候需要的,需要在模板显示对应的信息的,所以这样的数据我们是使用不了的,所哟我们需要使用toArray()来转一下这个是使用toArray()转过后的数据 ,这样的数据我们在前台输出的时候就...
author:咔咔wechat:fangkangfk在控制器创建exception控制器,并重写render方法<?phpnamespace appadmincontroller;use thinkLog;use Exception as Exceptionthink;use thinkexceptionHandle;class Except...
author:咔咔wechat:fangkangfk在以前我们处理这个时间戳一直都是把时间使用date给字段重组了一次最后发现框架有个获取器这个是我的数据库字段他可以直接将数据处理...
author:咔咔wechat:fangkangfk我们先从后台给设置条件给前台传值前台使用empty来判断{empty name="name"}name为空{else /}name不为空{/empty}
author:咔咔wechat:fangkangfktp5的空操作比如我们判断当这个控制器的方法不存在的时候直接跳转到index的方法输出
author:咔咔wechat:fangkangfk案例:专题添加视频不可重复注释写的这么清晰就不需要在解释了/** * author:咔咔 * * 批量给专题添加视频 */ public function batchAddVideo() { $param = $this->request-&...
 author:咔咔wechat:fangkangfk service:逻辑层代码,用来处理业务逻辑工具类:项目公共使用的文件,就比如在TP5.1登录模块中的utilSC门面类:门面是用来代理工具类的,里边必须继承facade钩子:应用初始化 这只是目前最基础的理解,后边在深层次理解时,在来优化此篇文章...
author:咔咔wechat:fangkangfk request()->ip() 
author:咔咔wechat:fangkangfk 由于步骤比较多,在下一篇文章用命令在data命名空间创建文件,本片文章只是创建了data的命名空间看下图会发现,命令行创建的文件,还是会到app下去。所以下片文章处理 从下图我们可以看出,facade,service,util,bahavior这些公共层与模块混在了一起,很不利于后期的管理因为模块不仅仅只有ind...
author:咔咔wechat:fangkangfk 在上篇文章中,我们做了自定义命名空间,但是使用命令行创建文件的时候,会发现,会一直创建在app的命名空间下,下来我们处理一下这个问题https://blog.csdn.net/fangkang7/article/details/83476420   下面这个文件是命令行创建文件的类我们重点看一下这个方法并...
author:咔咔wechat:fangkangfk https://blog.csdn.net/fangkang7 https://blog.csdn.net/fangkang7/article/details/83476420在上篇文章中,我们创建了data的命名空间,有码友就在问为什么要创建这个命名空间,这个有什么用。 下来看一下我们的目录结构我就们就可以看出...
author:咔咔wechat:fangkangfk 唯一登录:就是一个账号只能在一台设备登录实现步骤:1.在用户登录的时候生成唯一token,本地缓存一份,服务端缓存一份2.使用中间件进行判断  在上一篇文章我们将所有的层都放置到了根目录的data中。 创建OnlyLogin工具类 源码:<?phpnamespace dat...
author:咔咔wechat:fangkangfk 使用composer下载验证码类我的composer安装在这个目录下composer require topthink/think-captcha 下载完之后放置到根目录的vendor下  项目中使用:引入这个类use thinkcaptchaCaptcha; 页面使用:...
author:kakwechat:fangkangfk 实现步骤:在data创建一个Uservaildate的验证类写验证规则在登录时对验证类的调用,然后校验$userVaildata->check(Request::param())这个方法是获取用户输入的信息$userVaildata->getError()这个方法是返回验证错误信息  ...
author:咔咔wechat:fangkangfk 在上一篇文章引入验证码哪一篇文章我们会发现在有的浏览器那个验证码在初始化的时候会直接运行2次或者三次,所以第一次怎么填都是验证码错误 出现这个原因呢!那是因为浏览器在第一次加载的时候会执行一次img标签,这个时候会执行一次。第二次是获取img标签的src时会发起一次请求。这就造成验证码第一次输入会报错的原因 下来...
author:咔咔wechat:fangkangfk 总结:关联预载入的实现1.创建需要关联的模型2.在模型里写上对应关系    第一个参数是需要关联的模型    第二个参数是关联模型的主键    第三个参数是本表的关联字段3.创建一个服务,并将查询关系写出来,也就是下面这段代码这段代码,是从user表开始查询,userRole和UserGroup都...