自己在工作当中从简单应用到初步掌握CakePHP框架,觉得有很多点是需要刚刚接触Cake这块大蛋糕的人所应该注意的,于是将平日里积累下来的小问题总结一下,希望对大家有所帮助:
1. CakePHP系统中 cake 、 vendors 保持默认,不可随意修改;项目开始时 首先要编辑配置 app/config/core.php 与 database.php 文件;
2. Cake开发为MVC模式, 要将应用文件 添加 到 app 下的 M(Models) 、 V(views) 、 C(controllers) 文件夹下;
3. 数据库表命名不能与 cakephp 系统冲突,如 objects , information 均不可取; 表中字段 id ,外键 host_id;
4.form 表单的创建: $form->create( string $model = null,array $options = array()
);
参数可以自选
5. 视图 文件名不能为大写,如: auditRefuse.ctp 它会解释为: audit_refuse.ctp.
6. 在某一具体的 action 函数中设置自身应用的 layout,代码如示 : $this->layout="myself_layout";
7. 当数据库字段修改后,要及时将缓存清空,具体路径为: app/tmp/cache/models/;同时位于app/tmp/logs/下的调试日志与错误日志均可删除(尤其是项目上传服务器时)。
8.分页视图中$paginator<!-- [if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> 调用 cake\libs\view\helpers 下的 paginator.php 文件中的函数,具体参数格式如下:
$paginator->first ( ' 首页 ',array() ) ;
$paginator->prev ( ' 上一页 ',array(),null,null ) ;
$paginator->numbers ( array() )
$paginator->next ( ' 下一页 ',array(),null,null ) ;
$paginator->last(' 尾页 ',array());
9. 复杂条件查询时, cake 会将 where 的多个条件默认为 and 连接,如想将 $cond['conditions'][] 数组下的条件改为 or 连接,则可以使用 $cond['conditions'] = array("or",$cond['conditions']);
Cake 可以接受所有有效地布尔运算,如: and , or , not 等,大小写不敏感。
10. 去除 $html->link 下划线,加上
$html->link(‘xx’,array(),array('style'=>'TEXT-DECORATION:none;') );
11. 校验信息不显示:
(1). 打印 $this->validateErrors() 可以看到错误,在页面上相应的错误显示出来就行了
(2). 保证 validate 数组格式正确;
代码方面,当 save ()失败或初始时,可能执行了 $this->data = $this->XXX->read();
12. 对session的操作:
$this->session->destroy(); 此方法将删除所有的会话cookie和所有临时文件系统中存储的数据,然后它将破坏php的会话,创建一个新的会话;
$this->session->delete($testname); 此方法将清除会话数据元名称所对应的session值。
13. render() 与 redirect()
render()试图显示,当显示到页面后,还可以执行action中的程序代码;而redirect是重定向,可以控制程序的跳转执行。
CakePHP是一个开源的PHP on rails的full-stack framework。由Ruby On Rails框架衍生而来,它所包含的绝不仅仅是这些东西,还有很多的方面需要我们在实际应用中去体会,去锤炼,同时,它预置的快速且不失灵活性的方式来开展我们的工作,就像它的名字一样,吸引我们去享受它...
近期本人开通了微信订阅号“CakePHP学习”,欢迎大家的关注。