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)”前面的勾即可。
ThinkPhp 3.2 常见问题与注意事项

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

待续...

   

 
上一篇:jquery.SuperSlide.js只需要调用一个插件就能实现网页大部分特效--推荐


下一篇:Sentinel入门学习记录