1快速创建后台管理
如果你需要创建后台管理程序,并且希望所有管理action都位于某个特定文件夹下, 那么打开 config/core.php 并将下面这一行的注释去掉:
define(’CAKE_ADMIN’, ‘admin’);
这样所有以”admin_”开头的action都可以通过 /admin/yourcontroller/youraction 来访问。 例如,如果在posts controller中创建了名为”admin_add”的action, 那么可以通过 www.example.com/admin/posts/add 访问这个action。 这样就可以方便地为admin目录设置密码以避免他人随意访问。
2使用bake.php
Bake是个命令行PHP脚本,可以根据数据库自动生成model、controller和view。 在开发的最初阶段,我强烈推荐使用scaffolding让你的原型程序跑起来。 但如果你清楚地知道scaffolding不合适,我推荐你使用bake。 bake会生成所有的文件并保存到磁盘上,以便你随意修改。 这样能节省创建关联、view、基本的CRUD crollder操作的重复工作。
(译者注:CRUD – Create, Read, Update, Delete,数据库应用的四种基本操作,即”增删查改”。)
bake很方便。你只需在数据库中建立一个表,然后到 /cake/scripts/ 目录下执行 php bake.php 即可。
如果你通过交互方式来运行bake,它会分几步提示你创建model、controller和view。 创建结束之后,我通常会阅读所有生成的代码并做必要的修改。
注:使用bake步骤
1)确保path中环境变量已经加入php.exe
2)运行cmd,输入:cd 你的cakephp文件路径
3)输入你的路径+cake/console/cake bake,而后进行mvc的操作
3发布程序时注意权限
有一次我在发布程序时,将整个cake目录打包然后用scp上传到了服务器上。 只要一关闭调试信息,就会出现错误——数据库调用无法返回任何数据。 我一筹莫展,因为我必须通过调试信息才能调试问题。 后来有人告诉我,/app/tmp应当对apache可写。将权限改为777之后问题就解决了。
4.记录错误日志
$this->log(’Something broke’);
这样可以将错误记录到 /tmp/logs/ 中(我最初以为会记录到apache的错误日志中)。
5.重定向之后记得exit()
对于有经验的人来说这应当是理所当然的事儿,调用 $this->redirect() 之后,剩下的代码如果不想运行 要exit()。我也这样做,但以前曾经认为 $this->redirect() 会为我调用exit(实际上不会)。
6.为CakePHP添加所见即所得编辑器
这里有一篇非常好的教程教你如何在 CakePHP中使用TinyMCE。基本上你只需在页面上链接tiny_mce.js文件,然后添加一些初始化代码以设置 将哪个textarea变成TinyMCE编辑器即可。
http://bakery.cakephp.org/articles/view/using-tinymce-with-cakephp
7.发送邮件
请参看另一篇博文,在这里
8.自定义Helper生成的HTML
我需要修改调用$html->selectTag()时生成的<option>,使其生成“请选择”选项来代替默认的空白选项。 我也希望单选按钮能带有标签,这样用户就无需精确地点击单选按钮本身,而只需单击到关联的文字上即可。
建立 /app/config/tags.ini.php,然后添加以下的内容:
; Tag template for a input type=’radio’ tag.radio = “<input type=”radio” name=”data[%s][%s]” id=”%s” %s /><label for=”%3$s”>%s</label>”; Tag template for an empty select option tag.selectempty = “<option value=”" %s>– Please Select –</option>”
你可以从/cake/config/tags.ini.php中获得完整的标签列表。但我不建议修改该文件, 否则升级CakePHP时可能会让你的修改丢失。