ThinkPHP
ThinkPHP
dancheng_work
在时间允许的情况下,源码是最好的开发文档。
展开
-
ThinkPHP简介
ThinkPHP按照MVC思想开发的一个框架,也叫TP框架。优点:1、快速,稳定的搭建系统程序2、可以使开发人员经历集中在业务逻辑上,不需要关系程序的底层架构3、可以节省大量代码,后期的升级、维护、优化十分方便4、有利于团队的代码风格统一。相关的一些框架1、zend framework zend公司开发的官方的框架,功能很强大,重量级框原创 2017-07-26 20:38:09 · 601 阅读 · 0 评论 -
thnkphp文件上传操作
THinkPHP自带了文件上传的类,位置Think/Upload.class.phpthinkphp上传图片代码:if($_FILES['goods_image']['error'] == 0){ $config = array( 'rootPath' => './Application/public/uploads/', ); $upl原创 2017-08-06 16:36:31 · 332 阅读 · 0 评论 -
thinkphp生成缩略图
缩略图类存在的位置:Think\Image.class.php//生成缩略图$img = new Image();//1、打开图片$img->open(原图地址);//制作缩略图$img->thumb(200,300,6);//3、保存$img->save(新图地址);原创 2017-08-06 16:37:40 · 366 阅读 · 0 评论 -
thinkphp分页处理
分页类存放位置:Think\Page.class.phppublic function showlist(){ $model = M('goods'); $recordcount = $model->count(); //第一个参数是总记录数,第二个参数是页面大小 $page = new Page($recordcount, 10); $startno原创 2017-08-06 16:39:33 · 268 阅读 · 0 评论 -
TP中的session和cookie
session(‘name’) 获取名字是name的会话session(‘name’, ‘李白’) 将李白赋给name会话session(‘name’, null) 清空name的会话session(null) 清空所有会话 ---------------------------------------cookie(‘name’) 获取名字是nam原创 2017-08-06 16:40:09 · 903 阅读 · 0 评论 -
tp的命名空间
当开发大型项目的时候,可能需要成千上万的文件,面向对象通过命名空间解决这个问题的。PHP命名空间是PHP5.3以后出现的。命名空间中可以出现:类,函数,常只有const定义的常量命名空间才有效。命名空间的名字必须符合PHP命名的规则。命名空间的声明和使用:<?phpnamespace China;const nation = '中国';function getIn原创 2017-08-06 16:42:54 · 448 阅读 · 0 评论 -
Thinkphp3.2对于URL访问模式PATHINFO 模式导入css,js文件冲突问题详解
我的目录结构:原本这样导入css,js文件是个很方便的问题,但是遇到了PATHINFO这个奇葩的模式,却是个难题。首先大家第一印象都是./Application/Admin/Public/css/User_Login.css 这个路径在浏览器的URL上是和index.php同一个路径的,即http://localhost/first/Application/A原创 2017-12-12 20:17:02 · 957 阅读 · 0 评论 -
thinkphp5的数据库操作
1. 数据库配置2. query execute原生态sql语句 增删改查$result = Db::execute('insert into log(user_id, ip) values(1, 11231)');dump($result);$result = Db::query('select * from log');echo '';var_dump($原创 2017-12-24 19:49:42 · 613 阅读 · 0 评论 -
tp5的数据查询语言
1.查询一句$result = Db::name('log') ->where('id', 2) ->find();2.按条件查询多条语句//多条件查询//中间参数可以写成 >= in [4,5,6,7] 'between' [5,8]$result = Db::name('log') ->where('id', '>=', 2) ->sele原创 2017-12-24 19:57:43 · 8304 阅读 · 0 评论 -
tp5中的模型关联
controller调用model层:利用model对数据进行存储1. 最简单的方法:public function testModel(){ $log = new Log; $log->user_id = 123; $log->ip = '10.10.10.10'; $log->save();}2. 数组的方法:$logA原创 2017-12-24 20:03:26 · 4143 阅读 · 0 评论 -
tp5中的读取器和修改器
读取器设置读取器内容:调用:当$log对象读取ip的时候,或默认调用getIpAttr方法,然后执行getIpAttr方法中的代码;修改器修改器设置public function setUserIdAttr($value){ echo $value;}//修改器$log = Log::get(1);$log->user_id =原创 2017-12-24 20:08:59 · 3759 阅读 · 0 评论 -
tp5数据验证及验证场景详解
1. 在接收数据时直接进行验证:public function add(){ if(request()->isPost()){ $validate = new Validate([ 'username' => 'require|max:25', 'password' => 'require|max:32',原创 2017-12-24 20:13:08 · 9223 阅读 · 0 评论 -
tp5 数据查询和分页
1. 新建一个model类namespace app\admin\model;use think\Model;class Admin extends Model{}2. 调用model类进行分页public function lst(){ $list = AdminModel::paginate(3); $this->assign('list', $lis原创 2017-12-24 20:16:57 · 6561 阅读 · 1 评论 -
thinkphp生成验证码
TP框架自带的验证码类,位置:Think/verify.class.phptp可用字体:TP中生成验证码的函数:public function verifyImg(){ $config = array( 'imageW' => 120, 'imageH' => 30, 'fontSize' => 15,原创 2017-08-06 16:34:24 · 622 阅读 · 0 评论 -
thinkphp收集表单信息,进行添加修改
1、原始收集表单方法$data['goods_name'] = $_POST['goods_name'];$data['goods_category_id'] = $_POST['goods_category_id'];$data['goods_price'] = $_POST['goods_price'];$data['goods_introduce'] = $_POST['goods原创 2017-08-05 21:05:44 · 1210 阅读 · 0 评论 -
如果搭建ThinkPHP的环境
在首页index.php中定义:当创建好后,出现欢迎界面,则说明系统自动生成ThinkPHP的项目目录,并写入了初始的控制器和方法:自动生成的目录:创建控制器1、控制器存放在Controller文件夹中2、命名规范:控制器名称 + Controller.class.php3、类名和文件的名称一致4、类名用帕斯卡命名法5、尽量区原创 2017-07-26 20:43:23 · 523 阅读 · 0 评论 -
ThinkPHP的路由
1、普通模式2、pathinfo模式http://网址/入口文件(index.php)/分组(平台)/控制器/方法比如:http://localhost/index.php/home/index/index3、rewrite()重写模式4、兼容模式参数s=/分组/控制器/方法原创 2017-07-26 20:48:23 · 327 阅读 · 0 评论 -
定义和调用TP的模板
所有的模板都要放在view文件夹下。规则:一个控制器对应一个文件夹,一个方法对应一个文件TP模板调用:原创 2017-07-28 09:10:28 · 454 阅读 · 0 评论 -
TP系统常量
当前请求地址:__SELF__当前分组:__MODULE__当前控制器:__CONTROLLER__当前方法:__ACTION__原创 2017-07-28 09:11:18 · 720 阅读 · 0 评论 -
TP的空操作、空控制器、跨控制器调用
一、空操作系统在找不到请求的方法的时候,会定位到__empty()方法处理,利用这个机制,我们可以对用户请求的不存在的所有操作进行统一。二、空控制器当系统找不到控制器,会定位到空控制器上EmptyController三、跨控制器调用ManagerController中的方法public function managertest1(){原创 2017-07-28 09:16:26 · 398 阅读 · 0 评论 -
TP框架的配置文件
惯例配置:ThinkPHP/conf/convention.php应用配置:Application/Common/conf/config.php调试配置:Application/Common/conf/debug.php模块配置:Application/Home/Conf/config.php 加载顺序:惯例配置->应用配置->调试配置->模块配置 优先级:模块原创 2017-07-28 09:27:55 · 474 阅读 · 0 评论 -
TP语法
判断: PHP中的运算符对应的TP中的运算符英文全称ltLess than>gtGreater than==eqequal>=eqtEqual or greater than原创 2017-07-28 09:55:16 · 966 阅读 · 0 评论 -
ThinkPHP链接数据库
在配置文件中做如下配置便可链接数据库<?phpreturn array( //'配置项'=>'配置值' 'DB_TYPE' => 'mysql', // 数据库类型 'DB_HOST' => 'localhost', // 服务器地址 'DB_NAME' => 's原创 2017-07-28 09:59:46 · 393 阅读 · 0 评论 -
thinkPHP的数据添加、修改、删除
数据添加1、通过关联数组的方法添加$data = array( 'goods_name' => '手机', 'goods_price' => 2121);//返回值,如果第一列为自动增长列,则返回编号,不是自动增长,成功了返回1,错误返回0echo M('goods')->add($data); 2、通过AR(active record)方式来添加$goo原创 2017-08-05 13:53:12 · 2167 阅读 · 2 评论 -
thinkPHP的条件查询、动态查询和聚合函数
条件查询having 和 where 的区别区别一:where后面跟的字段必须在数据表中有having后面跟的字段必须在查询出的数据集中有区别二:where * from 表 where 条件 group by 分组1、按主键查询$list = M('goods')->select(2);返回一条主键值为2的数据 2、查询编号是2-6的记录原创 2017-08-05 13:47:19 · 936 阅读 · 0 评论 -
thinkphp表现层中的路径问题
学习ThinkPHP时遇到了一个很惨的问题的,就是在一个html页中,css文件路径利用相对路径配置的,在pathinfo模式下可以导入,但是在普通模式下就导入不进来了。于是我在网上找了很多关于url模式配置的文章和thinkphp显示层样式配置的文章,可是还是没有找到很好的解决办法。于是我就找了api文档,仔细了解了一下路径配置常量问题然后想到了一个很硬的方法,如下:这样无论用哪种模式进原创 2017-08-05 16:05:44 · 388 阅读 · 0 评论 -
thinkphp的几种跳转方法
1、$this->redirect('跳转链接',array(),停留时间,'消息');2、成功跳转$this->success('消息','跳转链接',停留时间);3、失败跳转(没有写地址,从哪来就往哪去)$this->error('消息');原创 2017-08-05 20:55:09 · 1621 阅读 · 0 评论 -
文本编译器ueditor的使用
1.首先下载文本编译器ueditor首先在ueditor官网下载一个编译器 2.然后再使用的html中引入js文件包ueditor.config.jsueditor.all.min.jszh-cn.js 3. html代码中要有 4. 引入js代码 UE.getEditor('content', {initialFrameWid原创 2017-12-24 20:20:01 · 361 阅读 · 0 评论