CakePHP FAQ(常见问题)整理

Q:CakePHP官方文档在哪里

A:https://cakephp.org/

Q: 如何替换cake默认的layout(全局模板页)?
A: 把在/cake/libs/view/templates/layouts/default.ctp 复制到 /app/views/layouts/default.ctp ,然后按需修改

Q: 使用UTF8 库时出现乱码(页面和?菘舛际荱TF8,只是显示取出的数据时乱码)?
A: 在1.2x中:在/app/config/databases.php的配置中添加’encoding’ => ‘UTF8′,cake则会在执行SQL前先执行一次SET NAMES $encoding

Q: model/behavior,view/helper,controller/component 之间是什么关系?
A: model view controller是常说的MVC模式,model一般负责数据存储,view负责页面显示(一般是页面模板),controller负责控制调用哪个model以及哪个view来显示结果,其他则是他们各自的辅助部分。

Q: 如何建立一个公共的controller(如何使所有controller都有相同的属性或方法)?
A: 把/cake/app_controller.php 复制到 /app/app_controller.php ,按需修改即可。(为什么是放到/app目录下而不是/app/controllers中呢?)

Q: 如何建立一个公共的model(如何使所有model都有相同的属性或方法)?
A: 把/cake/app_model.php 复制到 /app/app_model.php,按需修改即可。(为什么是放到/app目录下而不是/app/moclels中呢?)

Q: 如何建立一个公共的helper(如何使所有helper都有相同的属性或方法)?
A: 同上,推理可得。

Q: 如何使controller不自动加载model(建立一个不需要model的controller)?
A: 在controller中添加一个空值属性:var $uses = ”;

Q: 如何建立不需要读取数据库的model?
A: 添加属性声明:var $useTable = false;

Q: 如何在controller中调用多个model?
A: 添加属性声明:var $uses = array(‘Model1′, ‘Model2′);

Q: 如何在controller中临时(手工)调用其他model?
A:How to properly create a Model instance manually
或Creating Reusable Elements with requestAction

Q: 在controller中如何调用component?
A: 在controller中声明:var $components = array(‘Mycomponent’);,然后就可以在方法中通过 $ths->Mycomponent 来调用

Q: 如何在component中访问controller
A: 在1.1.x中可以这样:
class RequestComponent extends Object
{
var KaTeX parse error: Expected 'EOF', got '&' at position 30: …nction startup(&̲controller)
{
KaTeX parse error: Expected 'EOF', got '&' at position 20: …->controller = &̲controller;
}

}

Q: 如何使controller的方法不能直接通过URL访问?
A: 在方法名前加个_,如:function _test()

Q: 在controller的一个方法中,如何调用另一个方法的输出结果?
A: t h i s − > r e n d e r ( ‘ 另 一 个 方 法 名 ’ ) ; , 相 关 的 还 有 this->render(‘另一个方法名’);,相关的还有 this>render();this->requestAction,详细见手册。

Q: 如何让view可以使用其他helper?
A: 在controller中声明:var $helpers = array(‘Form’,'Text’); (注:html是默认就有的,在1.2x中不需要再包含进去)

Q: 怎样在cake中使用smarty?
A:

Q: 如何获取由 f o r m − > i n p u t ( ‘ v a r ’ ) 提 交 的 数 据 ? A : 在 c o n t r o l l e r 中 通 过 form->input(‘var’)提交的数据? A: 在controller中通过 form>input(var)A:controllerthis->params[‘url’][‘data’][$this->controller->modelClass][‘var’] 取得

Q: 如何取得URL中如/store/buy/12 的参数值?
A: 在controller中通过$this->params[‘pass’][0] 取得

Q: 如何在cake中使用AJAX?

Q: 如何映射一个controller(不建立controller但可以使不同的URL指向同一个controller)?

Q: 如何在一个model中调用其他model?

Q: 如何使controller的action不调用它的view(没有view的action)?

Q: 如何动态关闭cakeSqlLog?
A: /app/config/core.php中,将Configure::write(‘debug’, 2);修改为Configure::write(‘debug’, 0);

Q: 如何在一个helper中调用另一个helper?
A: 设置var h e l p e r s = a r r a y ( ‘ M y h e l p e r ’ ) ; , 然 后 就 可 以 在 类 中 用 helpers = array(‘Myhelper’); ,然后就可以在类中用 helpers=array(Myhelper);this->Myhelper来调用(注意属性大小写)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值