(1)不要在模板中直接使用{ $_GET .id}或者{ $Think .get.id},因为{ $_GET .id} { $Think .get.id} 这两种方式都没有任何过滤,容易被XSS。建议使用I方法,即:{:I( 'get.id' )} |
(2)在thinkphp中如果需要获取数据库中某个表的字段该怎么办呢?示例如下: |
查看代码打印 |
1 |
$user =M( 'user' ); |
2 |
$fields = $user ->getDbFields(); |
结果将返回一个由表字段组成的一个一维数组。 |
(3)数据修改的过程中如果我们只需要修改某个字段的值,就可以使用setField方法,而不需要每次都调用save方法,例如: |
查看代码打印 |
1 |
$user =M( 'user' ); |
2 |
$user ->where( 'id=2' )->setField( 'username' , 'www.phpernote.com' ); |
(4)涉及到比较的情况下不一定非得使用 if condition这种形式的,还可以按如下的形式来写: |
查看代码打印 |
1 |
<eq name= "web" value= "phpernote" >value</eq> // name 变量的值等于 phpernote 就输出 |
2 |
<neq name= "web" value= "phpernote" >value</neq> // name 变量的值不等于 phpernote 就输出 |
3 |
<gt name= "age" value= "5" >value</gt> // name 变量的值大于 5 就输出 |
4 |
<egt name= "age" value= "5" >value</egt> // name 变量的值大于等于 5 就输出 |
5 |
<lt name= "age" value= "5" >value</lt> // name 变量的值小于 5 就输出 |
6 |
<elt name= "age" value= "5" >value</elt> // name 变量的值小于等于 5 就输出 |
(5)在thinkphp的删除操作中可以不使用where直接使用 delete 来执行删除,例如: |
查看代码打印 |
1 |
$User -> delete ( '2,5' ); //删除主键为2和5的数据 |
(6)关于thinkphp的几个快速操作的函数的用法说明。 |
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操作一样。 |
(7)Model命名时,默认要和数据库里的表名一致,如PhpernoteUserModel. class .php对应数据库的名称应该是 '前缀_phpernote_user' ,在程序代码中的调用应该是:D( 'PhpernoteUser' ); |
(8)开发的过程中如不需要进行缓存,可以在入口文件中进行如下定义: |
查看代码打印 |
1 |
define( 'NO_CACHE_RUNTIME' ,true); |
(9)在开发的过程中如果需要知道一些额外的信息,可在配置文件中进行相应的定义,下面给出几个比较常见的信息定义方式: |
查看代码打印 |
1 |
'SHOW_RUN_TIME' =>true, //运行时间显示 |
2 |
'SHOW_ADV_TIME' =>true, //显示详细的运行时间 |
3 |
'SHOW_DB_TIMES' =>true, //显示数据库的操作次数 |
4 |
'SHOW_CACHE_TIMES' =>true, //显示缓存操作次数 |
5 |
'SHOW_USE_MEM' =>true, //显示内存开销 |
(10)自定义Model类并在实例化模型(模型就是数据库操作类)时使用,举例如下: |
a、在工程目录下的Lib目录下的Model目录下建立一个IndexModel. class .php,然后里面写一个方法play,此方法内容体为循环输出1至10。 |
b、那么在Action中的方法里,还可以这么写: |
查看代码打印 |
1 |
$index =M( 'index' , 'IndexModel' ); //这里可以加上自定义的模型类一起实例化 |
2 |
$index ->play(); |
那么会输出1至10。 |
(11)使用thinkphp的过程中如果需要更改默认的模板后缀名,可以在配置文件中做如下定义: |
查看代码打印 |
1 |
'TMPL_TEMPLATE_SUFFIX' => '.dwt' //这里就将模板后缀名改为了dwt |