三大自动
自动验证(他的生效时期是在action控制器里面的)
自动完成(自动填充)
字段映射(自动映射)
protected $_validate=array(
array('验证字段','验证规则','错误提示','验证条件','附加规则','验证时间')
//需要验证的表单的名称也可以是表单中的一些辅助字段
//验证规则必须要结合附加规则一起使用
//验证条件 0,1,2
附加规则 regex使用正则进行验证  function使用函数进行验证,前面验证规则必须要写函数名
callback 是一个回调 他会去找当前usermodel当中的一个成员方法
confirm验证表单当中两个字段是否相同
equal 验证是否等于某个值  in 是否在某一个范围之内  unique验证是否唯一
require必须验证  email验证邮箱 url验证url currency 验证货币 number验证数字
验证时间:是指数据库操作时间的验证时机 1.新增用户验证 2.编辑时候验证 3.全部验证
array('username','require','用户名必填');
array('username','checklen','长度不对',0,'callback')
function ckecklen($data){
if(strlen($data)>15 ||strlen($data)<5){
 return false;
}else{
 return true;
}
}
array('password','repassword','两次密码不一致',0,'confirm')

自动完成
成员方法,在create自动执行
array('填充字段','填充内容','填充条件','附加规则');
填充字段://

无限级分类
就是选择栏目,栏目可以出现无数层级别数
递归(效率低)
ajax
亲戚关系
id
name
pid
path
path来排序
select id,name,pid,path,concat(path,'-',id)as bpath from think_cate order by bpath;

验证码和分页
导入验证码类
import('org.util.p_w_picpath');
@代表当前项目的lib文件夹,p_w_picpath::buildImageVerity
<img src="__APP__/common/verify" onclick="show(this)">
function show(){
 obj.src="__APP__/common/verify/random"+math.random();
确定session当中存在的名字叫什么?
if($_SESSION['verify']!=md5($_POST['verify']){
$this->error('验证码不正确');
}
第一个参数为长度 默认为4个长度
第二项为模式 类型 0字母 1数字 2大写字母 4中文 5混合
第三项图像输出类型 默认为png
第四项为宽度  第五项为高度  第六项为验证码保存在session的名称
Image::GBverify()
长度  类型 宽  高  字体 session中存在的名字

分页
导入  import('org.util.page')
$count=$user->count();
$page=new page($count,3);
$page->setConfig('header','会员');
$page->setConfig('prefv','上一组会员');
$page->setConfig('next','下一组会员');
$page->setconfig('first','首页');
$page->setconfig('last','尾页');
$page->setconfig('theme','<div style='background:red'>%uppage%</div>');
%totalRow%
%header%
%noewpage%
%first%
$show=$page->show();

多语言支持,多模板支持
第一处是模板
第二处是配置文件
lang_switch_on=>true 是否开启多语言支持
default_lanuage=>'zh-cn' 默认多语言
lang_auto_detect=>true  自动侦测语言
action
L()用在我们的控制器里面
L('名称','值')
在模型里多语言支持model
{%lan}

多模板支持
tmpl_switch_on=>true  是否开启多模板支持
tmpl_detect_theme=>true 自动侦测模板
里面有记录机制,会记录当前的用户选择模板