ThinkPhp 3.2 常见问题与注意事项

1 命名空间声明必须写在脚本的最前面

如果运行PHP脚本后出现如下错误: 

Namespace declaration statement has to be the very first statement in the script

原因如下:

命名空间声明语句必须在脚本的最前面。
<?php的声明必须在脚本的第一句,即使空格、空行也不行。
 
然而,在dreamweaver中我的代码<?php前面没有空行和空格依然会报这种错误。原因是我使用记事本打开修改了编码,记事本打开后文件被加入了BOM头。
解决方法如下:
在dreamweaver中,点击菜单修改->页面属性->标题/编码,去掉“包括Unicode签名(BOM)”前面的勾即可。

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);

 

待续...

 

   

 
posted @ 2016-12-26 17:05  不见晨曦的占星师  阅读(518)  评论(0编辑  收藏  举报