总结ThinkPHP使用技巧经验分享(二)


循环输出
volist 还有别名 iterate

模版赋值:
  1. $User = D('User')
  2. $list = $User->findAll()
  3. $this->assign('list',$list)
模版定义:
  1. <iterate name="list" id="vo">
  2. {$vo.name}
  3. </iterate>
注意 name 和 id 表示的含义
  1. // 输出 list 的第 5~15 条记录
  2. <iterate name="list" id="vo" offset="5" length='10'>
  3. {$vo.name}
  4. </iterate>
  5. // 输出偶数记录
  6. <iterate name="list" id="vo" mod="2" >
  7. <eq name="mod" value="1">
  8. {$vo.name}
  9. </eq>
  10. </iterate>
  11. // 输出 key
  12. <iterate name="list" id="vo" key="k" >
  13. {$k}.{$vo.name}
  14. </iterate>
  15. //子循环输出
  16. <volist name="list" id="vo">
  17. <iterate name="vo['sub']" id="sub">
  18. {$sub.name}
  19. </iterate>
  20. </volist>
  21. Switch 标签
  22. <switch name="name">
  23. <case value="1">value1</case>
  24. <case value="2">value2</case>
  25. <default />default
  26. </switch>
其中name 属性可以使用函数以及系统变量,例如:
  1. <switch name="Think.get.userId|abs">
  2. <case value="1">admin</case>
  3. <default />default
  4. </switch>
也可以对 case 的 value 属性使用变量,例如:
  1. <switch name="userId">
  2. <case value="$adminId">admin</case>
  3. <case value="$memberId">member</case>
  4. <default />default
  5. </switch>
比较标签
  1. <eq name="name" value="value">value</eq> // name 变量的值等于 value 就输出
  2. <neq name="name" value="value">value</neq> // name 变量的值不等于 value 就输出
  3. <gt name="name" value="5">value</gt> // name 变量的值大于 5 就输出
  4. <egt name="name" value="5">value</egt> // name 变量的值大于等于 5 就输出
  5. <lt name="name" value="5">value</lt> // name 变量的值小于 5 就输出
  6. <elt name="name" value="5">value</elt> // name 变量的值小于等于 5 就输出
其实上面的所有标签都是 compare 标签的别名
  1. // 其中 type 属性的值就是上面列出的判断标签名称
  2. <compare name="name" value="5" type="eq">value</compare> // name 变量的值等于 5 就输出
If标签
  1. <if condition="$name eq 1 "> value1
  2. <elseif condition="$name eq 2" />value2
  3. <else /> value3
  4. </if>
C操作
操作(动态)配置: 主要用于Action方法里面
获取:
C('配置参数')
设置:
C('配置参数 ',新值)

A操作
快速创建Action对象:
$action = A('User');
等效于
$action = new UserAction();

D操作
快速创建模型数据对象:
$model = D('User');
等效于
$model = new UserModel();

S操作
快速操作缓存方法
获取:
S('name')
设置:
S('name','value');
删 除:
S('name',NULL);

F操作
快速文件数据保存方法
使用方法与S操作一样

L操作
快速操作语言变量
获取:
L('语言变量');
设置:
L('语言变量','值');
如: L('USER_INFO','用户信息'); //设置名称为USER_INFO的语言变量
批量赋值:
$arr['语言变量1'] = '值1';
$arr['语言变量2'] = '值2';
L($arr);

ThinkPHP系统常量
  1. THINK_PATH   // ThinkPHP 系统目录
  2. APP_PATH   // 当前项目目录
  3. APP_NAME   // 当前项目名称
  4. MODULE_NAME   //当前模块名称
  5. ACTION_NAME   // 当前操作名称
  6. TMPL_PATH   // 项目模版目录
  7. LIB_PATH   // 项目类库目录
  8. CACHE_PATH   // 项目模版缓存目录
  9. CONFIG_PATH   //项目配置文件目录
  10. LOG_PATH   // 项目日志文件目录
  11. LANG_PATH   // 项目语言文件目录
  12. TEMP_PATH   //项目临时文件目录
  13. PLUGIN_PATH   // 项目插件文件目录
  14. VENDOR_PATH   // 第三方类库目录
  15. DATA_PATH   // 项目数据文件目录
  16. IS_APACHE   // 是否属于 Apache
  17. IS_IIS    //是否属于 IIS
  18. IS_WIN    //是否属于Windows 环境
  19. IS_LINUX   //是否属于 Linux 环境
  20. IS_FREEBSD   //是否属于 FreeBsd 环境
  21. NOW_TIME   // 当前时间戳
  22. MEMORY_LIMIT_ON // 是否有内存使用限制
  23. MEMORY_LIMIT_ON // 是否有内存使用限制
  24. OUTPUT_GZIP_ON   // 是否开启输出压缩
  25. MAGIC_QUOTES_GPC // MAGIC_QUOTES_GPC
  26. THINK_VERSION   //ThinkPHP 版本号
  27. LANG_SET   // 浏览器语言
  28. TEMPLATE_NAME   //当前模版名称
  29. TEMPLATE_PATH   //当前模版路径
  30. __ROOT__   // 网站根目录地址
  31. __APP__   // 当前项目(入口文件)地址
  32. __URL__   // 当前模块地址
  33. __ACTION__   // 当前操作地址
  34. __SELF__   // 当前 URL 地址
  35. TMPL_FILE_NAME   //当前操作的默认模版名(含路径)
  36. WEB_PUBLIC_URL   //网站公共目录
  37. APP_PUBLIC_URL   //项目公共模版目录
预定义常量
  1. WEB_LOG_ERROR=0     // 错误日志类型
  2. WEB_LOG_DEBUG=1 // 调试日志类型
  3. SQL_LOG_DEBUG=2   // SQL 日志类型
  4. SYSTEM_LOG=0   // 系统方式记录日志
  5. MAIL_LOG=1   // 邮件方式记录日志
  6. TCP_LOG=2   // TCP 方式记录日志
  7. FILE_LOG=3   // 文件方式记录日志
  8. DATA_TYPE_OBJ=1 // 对象方式返回
  9. DATA_TYPE_ARRAY=0 // 数组方式返回
  10. URL_COMMON=0   // 普通模式 URL
  11. URL_PATHINFO=1   // PATHINFO URL
  12. URL_REWRITE=2   // REWRITE URL
  13. HAS_ONE=1   // HAS_ONE 关联定义
  14. BELONGS_TO=2   // BELONGS_TO 关联定义
  15. HAS_MANY=3   // HAS_MANY 关联定义
  16. MANY_TO_MANY=4   // MANY_TO_MANY 关联定义
  17. EXISTS_VAILIDATE = 0 // 表单存在字段则验证
  18. MUST_VALIDATE = 1 // 必须验证
  19. VALUE_VAILIDATE = 2 // 表单值不为空则验