Posted in Cakephp, VC & PHP by DYH1919(Freshow) at 04月 23, 2008
Tags: Cakephp 欢迎引用、转载、修改,在转载时附上本文URL即可。
你的数据库中的表也应该遵循下面的命名规则:
● cake使用的表名(Table name)应该有英文的复数形式组成,比如users, authors, articles. 注意,对应的model是单数形式
● 所有的表 都必须有一个主键叫做 id
● 如果你需要关联tables,使用外键比如 article_id 。表的名字是单数,必须是小写,比如id
● 另外,最好遵从下面的命名规则以便更方便的使用某些功能
Include a ‘created’ 列
Include a ‘modified’列
UltraEdit 32 中高亮显示 CakePHP 的 视图(View),.ctp ,同理可扩展其它自定义后缀:
找到 UltraEdit 32 的 安装目录,打开 wordfile.txt 找到 253 行,在后面添加上 CTP 就行了。
例如:/L3″HTML” HTML_LANG Nocase Noquote Block Comment On = <!– Block Comment Off = –> File Extensions = HTM HTML SHTML HTT HTA HTX CFM JSP PHP PHTML ASP CTP
在CakePHP 中使用自定义全局变量,常量,全局函数等全局性东西:(/app/config/bootstrap.php),另一个办法是在 app 目录重载 app_controller.php,这样可以让全局函数。
Bootstrapping CakePHP
If you have any additional configuration needs, use CakePHP’s bootstrap file, found in /app/config/bootstrap.php. This file is executed just after CakePHP’s core bootstrapping.
This file is ideal for a number of common bootstrapping tasks:
- •Defining convenience functions
- •Registering global constants
- •Defining additional model, view, and controller paths
数据库乱码
app\config\database.php中设置 ‘encoding’ => ‘utf8′;
更新单个表项或多个表项时要指明 id ,如果不指明则是插入新行
$this -> Controller -> id = $this -> Session -> read('id');
$this -> :Controller -> id = $this -> Session -> read(’id’);
$this -> :Controller -> saveField(’actived’,'Y’)
saveField() 和 save()
上面也是说在 CakePHP 中如何使用 Update 这样的效果
显示乱码:
可以修改 view 文件夹下的 模版文件,添加:
$html -> charset(”UTF-8″);
Session使用:
Controller :$this->Session->write($key,$value); $this->Session->read()…..
使用数组:$dataArray1 = array (’g'=>$generalfile,’b'=>$bigfile,’s’=>$smallfile,’m'=>$minifile); $this -> Session -> write($dataArray1);
View:$session->read($key);…..
function afterSave()
{
// mail me when a new bookmark is added
mail('example@example.com', 'Bookmark saved to database');
return true;
}
不使用 layout: $this-> layout = false;
Model 名和数据库名不对应:var $useTable = 'Table Name';
==============
setFlash
string $flashMessage
string $layout = ‘default’
array $params
string $key = ‘flash’
将变量$flashMessage中的信息写入Session(提供给之后的flash()方法来获取)。
如果$layout设置为“default”,该消息被存储为’<div class=”message”> ‘.$flashMessage.’</div> ‘.如果$default设置为”,该消息就按原样保存。如果参数为其他任何值,该消息以 $layout 所指定的格式保存在Cake view里.
新增 我收集、整理的一些 CakePHP 学习资料:这里下载 [2008.5.6]
原文地址:http://www.oblank.com/?p=475 转载时请不要删除本地址
•
CakePHP V1.2 中 Session 丢失修正方法。
Posted in Cakephp, VC & PHP by DYH1919(Freshow) at 04月 15, 2008
Tags: Cakephp, session 欢迎引用、转载、修改,在转载时附上本文URL即可。
在 CakePHP V1.2 中,即使在 ./cake/app/config/core.php 设置 Session.start 值为 true
Configure::write(’Session.start’,true);
Session 也会在刷新,离开本页,甚至于在 Controller 中使用了 redirect() 时丢失,翻遍了互联网也没找到答案,询问 Cake Google Group 也没有很好的 fix 方案。今天再通过 Subversion 从 V1.2.0.6331 升级到了 V1.2.0.6661 ,可问题仍没有解决。 后来想到看一下 CakePHP 的 libs 库文件或许可以解决问题,于是找到了 ./cake/cake/libs/controller/components/ 目录下的 session.php 文件,发现里面有一个变量 var $__started = false; 将它改为 true 后再测试,Session 一切正常,不会再丢失。 比较理想的修正方法: 1,将 ./cake/app/config/core.php 的 session.start 设为 true:
Configure::write(’Session.start’,true);
2,拷贝 ./cake/cake/libs/controller/components/ 目录下的 session.php 到 ./cake/app/controller/components 下,然后将 session.php 中的 var $__started = false; 设值为 true即可:
var $__started = true;
为什么要复制文件到 ./cake/app… 目录下呢?这是因为 app 是用户目录,而 ./cake/cake…. 是 CakePHP 的核心文件,一般不能修改,以方便以后升级使用。复制到 app 目录,可以通过重载的方法实现 fix bug 。 顺便提一下,session components 是每个 Controller 的默认组件,使用时不需要再次包含进去。
下面这部分是写给外国佬看的,英语好的绕道:
How to fix session gone/lost in CakePHP V1.2.x
I have got the bug(maybe!) ,fix steps :
first:confige session autostart in ./cake/app/config/core.php
Configure::write(’Session.start’,true);
then,copy the ’session.php’ file in ./cake/cake/libs/controller/components/ To ./cake/app/controller/components And set the var __started value to true, as below:
var $__started = true;
it work fine for me, help hope it useful
GooglGroup 关于这个问题的修正的完整讨论看这里。
原文地址:http://www.oblank.com/?p=450 转载时请不要删除本地址
•
Subversion 安装记录
Posted in Subversion, VC & PHP by DYH1919(Freshow) at 04月 15, 2008
Tags: Apache, Cakephp, Subversion 欢迎引用、转载、修改,在转载时附上本文URL即可。
CakePHP Session 一直不能持久化,几天来用蹩脚的英语在Cakephp Google Group 上求助得来的方法都不起作用,后来看到似乎是将 Cake 从 V1.2.0.6113 升级到了一个新版本才算解决了问题,在 CakePHP 的 Svn 看到已经有了 1.2.0.6661,希望也可以通过升级来解决,于是就得用到了 Subversion 这个版本控制软件。
说起 Subversion ,以前在 Eclipse 中使用过插件,但也就是这个插件让我的 Eclipse 崩溃,所以这次不准备使用插件了而改用客户端。
SVN 的最新版是 1.4.6 ,但不能与 Apache 2.2.x 搭配,我先是在官方提供的“built against Apache 2.2.x ”下载“svn-1.4.6-setup.exe”,安装发现根本不能在 Apache 2.2.4 上使用,又下载“svn-win32-1.4.6.zip”,按照网上一些教程进行手动设置,费掉了九牛二虎之力也没能解决。
最后又下载“Subversion modules svn-1.4.6 available”,但安装到最后才发现它的教程很模糊,其间又有提到集成方案“EasyCM_0.8.0_Server_Win32”,(包括Apache-2.0.59、subvertion-1.4.4、TortoiesSVN-1.4.4),安装时发现 Apache 和 subversion 版本都很低,没道理我在返回去使用低版本的软件(宁愿做只小白鼠!),所以都跳过只安装了 TortoiesSVN 和 Python 2.4。
后来又在官方的“built against Apache 2.2.x ”下载了一个 Python 2.4 ,最后发现已经可以使用了,不过网上提到教程那些 浏览器中访问什么什么的我这里同样不能,只是右键菜单多了很多 SVN 方面的操作,也是前面的 TortoiesSVN 图形化软件。
经实验,能够成功能过 Subversion 从 CakePHP 获取最新版。
总结一下:回顾这个安装过程,安装 EasyCM 的 TortoiesSVN 、Python2.4 和最后安装 “svn-python-1.4.6.win32-py2.4.exe” 是关键。