ThinkPhp 3.2 常见问题与注意事项
1 命名空间声明必须写在脚本的最前面
如果运行PHP脚本后出现如下错误:
Namespace declaration statement has to be the very first statement in the script
原因如下:
2.命名规范
类文件都是以.class.php为后缀(这里是指的ThinkPHP内部使用的类库文件,不代表外部加载的类库文件),使用驼峰法命名,并且首字母大写,例如 DbMysql.class.php
;
类的命名空间地址和所在的路径地址一致,例如 Home\Controller\UserController
类所在的路径应该是 Application/Home/Controller/UserController.class.php
;
自动收集表单数据时,view模块的input的name名必须和数据库表的字段写法完全一致(因此才推荐建表时字段名使用小写),后台通过cteate()方法收集到的表单数据,其返回结果是关联数组,其索引关键字大小写与name名必须完全一致(也就是必须与数据库字段名完全一致)
前台输出关联数组时,支持点语法,例: $v.UserName
3.开启trace信息
可在application下的commen文件夹下的config配置文件config.php或者application下的conf文件文件夹下的config.php里面增加以下代码(后者只本模块显示,前者全部application下的项目都显示):
<?php
return array(
//'配置项'=>'配置值'
'SHOW_PAGE_TRACE'=>true, //开启trace信息
);
4.类方法的继承
当子类继承父类时,例如在构造方法__construct()里面,不要忘记写上parent::__construct(); 不然方法里面所有的东西都被覆盖了...很多东西都不起作用了...
5.redirect()方法重定向
Controller类的redirect方法可以实现页面的重定向功能。
例如:
//重定向到New模块的Category操作 $this->redirect('New/category', array('cate_id' => 2), 5, '页面跳转中...');
6.数据库的布尔型在改数据时只能传值为false和true
查询时布尔型数据可以写为0或者1,例如:
and state=1
但是修改数据时,只能用false和ture,如:
$data['code']=$_POST["code"]; $data['state']=false; $r=$u->save($data);
待续...