如果父类有_initialize()方法,子类用任何方法前都会调用父类的 _initialize方法,避免这种现象可以在子类中声明_initialize()方法,可以控制是否调用父类的_initialize方法

class ExcelController extends CommonController{
function _initialize() {
parent::_initialize();
echo 'ExcelController'.PHP_EOL;
}
}

  

前台模板文件{$a} 在某些位置不能被成功替换,例如{afdasd{$a}}解决办法 直接写成<?php echo($a); ?>

某些数组变量无法被解析可以把$vo.size 替换成$vo[‘size’]试试

通过一个Thinkphp完成多个项目

1、单独取压缩包中的Thinkphp文件夹

2、在单独的项目内创建一个引入文件

3、通过浏览器访问该index.php 会创建相应的目录

创建除另外一个项目分组外的另外分组

自动创建后台目录

自动生成控制器

生成Admin模块的目录,并生成一个默认的控制器类Admin\Controller\IndexController。 如果需要生成更多的控制器类,可以定义BUILD_CONTROLLER_LIST常量,例如:

  1. // 绑定Admin模块到当前入口文件
  2. define('BIND_MODULE','Admin');
  3. define('BUILD_CONTROLLER_LIST','Index,User,Menu');
  4. define('APP_PATH','./Application/');
  5. require './ThinkPHP/ThinkPHP.php';

复制代码

访问后会自动生成三个指定的控制器类:

  1. Admin\Controller\IndexController
  2. Admin\Controller\UserController
  3. Admin\Controller\MenuController

品字框架传值

品字形框架通过index.html引入三个left.html/right.html/head.html,在index.html中不能使用”./left.html”,         比喻用单独的方法引入__CONTROLLER__/left,这样控制器才能传值。

显示所有常量

品字形框架点击替换

index.html(head.html/left.html/right.htm),点击left中连接,替换右边

使用自动验证时,

页面没有显示

使用dump($info->getError());可以

空控制器

跨控制器调用

$obj = A(”abc”); $obj->fun();

$obj = A(”admin/abc”); $obj->fun();

R函数是对A方法的封装

$user = new UserController;  ===      $user=A(“User”);

$user = new UserController;

$user->fun();               === R(“User/fun”);

跨模块调用

R(“Home/User/fun”);

R(“Book://Home/User/fun”);

SQL匹配顺序

SELECT%DISTINCT%%FIELD%FROM %TABLE%%JOIN%%WHERE%%GROUP%%HAVING%%ORDER%%LIMIT% %UNION%%COMMENT%

having()方法设置查询条件,where()设置查询条件

having  和 where区别

①   使用有先后顺序

②   where  price>100     having price>100

③   where  设置条件,字段必须是数据表中存在的字段

④   having 设置条件,字段必须是select语句查询出来的字段可以使用

模版页面通过get传参数http://.../good_id/2;控制中可以直接使用echo $good_id;//2

模板输出时间

TP验证

十二、

十三、

十四、

十五、

十六、

多语言支持

1、

2、

3、

4、

变量会被替换

html,if标签使用

$vo.auth_id eq $vo2.auth_pid报错不能用

condition里面访问变量,不能用点的形式,应该用['']的形式访问

超级管理员

表前缀sw_时

操作效果一样

自增序号,而且默认变量就是$i,也就是说在你的volist标签之内,可以直接使用$i

<volist name="vlist" id="v">

<{$i}> // 直接使用$i

</volist>

去除最右空格

字符串分割数组

数组连接字符串

模板volist自增变量

SQL排序

模版输出多个空格

创建表

DROP TABLE IF EXISTS `sw_user`;

CREATE TABLE `sw_user` (

`user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增id',

`username` varchar(128) NOT NULL DEFAULT '' COMMENT '登录名',

`password` varchar(32) NOT NULL DEFAULT '' COMMENT '登录密码',

`user_email` varchar(64) NOT NULL DEFAULT '' COMMENT '邮箱',

`user_sex` tinyint(4) NOT NULL DEFAULT '1' COMMENT '性别',

`user_qq` varchar(32) NOT NULL DEFAULT '' COMMENT 'qq',

`user_tel` varchar(32) NOT NULL DEFAULT '' COMMENT '手机',

`user_xueli` tinyint(4) NOT NULL DEFAULT '1' COMMENT '学历',

`user_hobby` varchar(32) NOT NULL DEFAULT '' COMMENT '爱好',

`user_introduce` text COMMENT '简介',

`user_time` int(11) DEFAULT NULL,

`last_time` int(11) NOT NULL DEFAULT '0',

PRIMARY KEY (`user_id`)

) ENGINE=InnoDB AUTO_INCREMENT=133 DEFAULT CHARSET=utf8 COMMENT='会员表';

/*!40101 SET character_set_client = @saved_cs_client */;

设置auto_increment 从133开始,插入数据时可以是任意值

验证码点击更换

<img src="__CONTROLLER__/verifyImg"  onclick= "this.src='__CONTROLLER__/verifyImg/Math.random()'"  />

疑难杂症,验证码有时不显示;

public function verifyImg(){

ob_end_clean(); //增加这句

$Verify = new \Think\Verify();

$Verify->fontSize = 16;

$Verify->length   = 1;

$Verify->imageW =100;

$Verify->imageH =25;

$Verify->useNoise = false;

$Verify->entry();

}

I函数获取表单数据

I(‘post.name’);没毛病,获取全部数据I(‘post.’)别忘记这个’.’

当想mysql某插入有某字段设置了unique且和之前相同时,会报错,并停止运行

ThinkPHP 模板中无法计算

<td>{$listSum.goods_amount}</td>

无法进行计算需要使用

<td>{$list[goods_amount]- $listSum[cost_amount]-$listSum[shipping_amount]}</td>

获得某时间戳的下个月初时间戳(自己写)

$i=@strtotime(@date('Y',$i).'-'.@(date('m',$i)+1).'-1 00:00:00'))

ThinkPHP3.2 杂记的更多相关文章

  1. [Erlang 0118] Erlang 杂记 V

       我在知乎回答问题不多,这个问题: "对你职业生涯帮助最大的习惯是什么?它是如何帮助你的?",我还是主动回答了一下.    做笔记 一开始笔记软件做的不好的时候就发邮件给自己, ...

  2. thinkphp3.2.3中U()方法和redirect()方法区别

    今天博主看3.1的教程,学着3.2,就遇到了这个坑,怎么就是不跳转呢,很纳闷!! 在thinkphp3.1 中 U()方法是可以执行跳转的(看视频教程里面是可以的,博主没有测试过). 但是在think ...

  3. thinkphp3.2.3版本文件目录及作用

    下载thinkphp3.2.3版本,解压缩后将文件夹名字改为thinkphp,然后放在www目录下,里面的文件夹和文件的名字和作用如下:(前面有Tab健的表示下一级,thinkphp是根目录) //t ...

  4. 基于ThinkPHP3的微信平台开发_1

    微信公众平台是个好东西,具体的就不说了,我直接说技术>_< 下图为目录结构一览: 微信开发 - 文件目录结构 平台功能: 此次开发的平台是面向多微信公众号.微信多公众号主(下面简称号主)的 ...

  5. Thinkphp3.2.3使用Ajax一定注意 数据返回

    Thinkphp3.2.3使用Ajax一定注意 数据返回 $data = 'ok'; $this->ajaxReturn($data); 不能直接 echo $data;

  6. ThinkPHP3.* 模型操作相关函数

    ThinkPHP3.* 版本,大家所不熟知的,且与数据库操作相关的函数做以简单罗列: 1.getLastSql 别名 _sql (鉴于getLastSql比较常用,故出现了别名函数_sql) 2.se ...

  7. ThinkPHP3.2设置404跳转页面

    在ThinkPHP3.2版本中当我们访问不存在的页面时会出现非常不友好错误提示页面,类如下图: 解决办法: 1.在ThinkPHP3.2详细的介绍了该框架下的ThinkPHP惯例配置文件convent ...

  8. 浅谈ThinkPHP3.2的子域名部署和路由优化(一)

    前言:建立一个网站系统,往往包含多个子网站,例如PC官网,移动端官网,后台管理,数据源自一个相同的数据库,整个架构上,从ThinkPHP来看,可以大体理解为Model(M)是一样的,Controlle ...

  9. Ubuntu杂记——Ubuntu下用虚拟机共享上网

    由于最近把自己电脑环境换成了Ubuntu,但学校的网络是电信的闪讯,大学里用过的人都知道这货有多坑,而且没有Linux客户端,上网都是问题,怪不得国内用Linux的人那么少,特别是高校的学生(让我瞎逼 ...

随机推荐

  1. Python+selenium整合自动发邮件功能

    主要实现的目的是:自动将测试报告以邮件的形式通知相关人员 from HTMLTestRunner import HTMLTestRunner import HTMLTestReport from em ...

  2. python爬虫之路——初识函数与控制语句

    介绍python函数的定义与使用方法,介绍Python的常用控制语句:判断和循环 函数: 格式 def   函数名(参数1,参数2): return ‘结果’ 判断语句:就是多选一 二选一: if c ...

  3. javaweb基础(24)_jsp一般的标签开发

    一.标签技术的API 1.1.标签技术的API类继承关系 二.标签API简单介绍 2.1.JspTag接口 JspTag接口是所有自定义标签的父接口,它是JSP2.0中新定义的一个标记接口,没有任何属 ...

  4. 用C#(ASP.Net)在Exchange Server环境下发送邮件

    普通的邮件, 用System.Net.Mail 类 或 System.Web.Mail 类 处理即可, 但是Exchange Server 环境下, 这两个类起不了作用-------至少目前我看到的情 ...

  5. TCP/IP协议头部结构体

    TCP/IP协议头部结构体(转) 网络协议结构体定义 // i386 is little_endian. #ifndef LITTLE_ENDIAN #define LITTLE_ENDIAN (1) ...

  6. ReactiveCocoa入门-part2

    ReactiveCocoa是一个框架,它能让你在iOS应用中使用函数响应式编程(FRP)技术.在本系列教程的第一部分中,你学到了如何将标准的动作与事件处理逻辑替换为发送事件流的信号.你还学到了如何转换 ...

  7. 【思维题 并查集 图论】bzoj1576: [Usaco2009 Jan]安全路经Travel

    有趣的思考题 Description Input * 第一行: 两个空格分开的数, N和M * 第2..M+1行: 三个空格分开的数a_i, b_i,和t_i Output * 第1..N-1行: 第 ...

  8. ubuntu系统普通用户密码忘记之重置

    当我们在使用ubuntu系统忘记普通用户登录密码的时候,会被系统在登录界面拒之门外而不得入,这时候只好需要我们去重新设置密码,具体做法如下: 系统重启,在GRUB模式下选择Advanced Optio ...

  9. python中的sort、sorted排序

    我们通常会遇到对数据库中的数据进行排序的问题,今天学习一下对列表和字典的排序方法. 列表 第一种:内建方法sort sort()对列表排序是永久性的排序. 用法:sort(*, key=None, r ...

  10. springboot下https证书配置

    没有证书的小伙伴首先申请一个阿里云免费证书,按照我的步骤来操作 1.购买页面是这样的 按照顺序选择 神奇的一幕出现了 然后就去购买成功,我们会看到证书没有签发,我们需要去申请 填写需要绑定的域名 一般 ...