Cakephp 入门.doc_第1页
Cakephp 入门.doc_第2页
Cakephp 入门.doc_第3页
Cakephp 入门.doc_第4页
Cakephp 入门.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Cakephp 入门一、 环境设置和安装1、 环境设置Cakephp的url传参数的时候不是用平常的get格式,而是用controller action名后面的“/”分隔的字符作为这个controller action的参数(action是一个函数)。也因为这样,需要apache服务器支持rewrite,只要加载rewrite模块就行了在httpd.conf里加入LoadModule rewrite_module modules/mod_rewrite.so,至于加在那一行,我想最好加在类似的LoadModule xxx附近吧。其它的和普通的php环境没有区别。2、 安装从cakephp的官方网站( )下载一个最新版本(目前的版本号是427),解压后把app、cake、vendors、.htaccess(linux下要注意了,这是隐藏文件),index.php复制或剪切到apache服务器的documentroot或者它下面的某个目录,我这里假设放在cake目录下,以后也这样。接下来就是设置数据库了,进入app/config/目录,把database.php.default重命名为database.php,打开这个文件就可以看到关于数据库用户名密码之类的设置了,里面的注释说得很清楚。3、 测试打开/cake,看到“Cake is able to connect to the database”的提示基本大功告成了。还出问题的话就要具体问题具体处理了,反正这里想象不出来。二、 用户登录的简单例子1、 功能用户注册和验证用户登录,登录后可以修改自己的资料。2、 数据库,暂时只有一个users表,包含“用户名”、“密码”、“email”、“年龄”、“个人网站”: CREATE TABLE users ( id int(8) NOT NULL auto_increment, name varchar(30) collate latin1_general_ci default NULL, password varchar(100) collate latin1_general_ci default NULL, email varchar(50) collate latin1_general_ci default NULL, age int(3) default NULL, website varchar(50) collate latin1_general_ci default NULL, PRIMARY KEY (id) )3、 创建Model在app/models下创建user.php文件,代码如下:class user extends AppModel var $name=user;可以看出model要继承AppModel,$name属性是用来查找数据库中对于的表的,同时作为表数组在controller中$this-data的key。4、 创建test controller在app/controllers下创建user_controller.php,代码如下:class UserController extends AppController var $name=user;var $helpers = array(Html, Form );var $layout=;function test($strFromUrl)$this-set(testStr,这是测试字符串);$this-set(strFromUrl,网址参数:.$strFromUrl)$name属性决定了对应的view文件在app/views下的目录名,helpers加载在view里用到的helper,方便用来生成html,layout是这个model的网页布局,可以在方法里动态改变,这里使用了空布局,因为默认的不怎么好看,还会扰乱新手视线。里面的任何方法代表这个controller的一个操作,test将在后面用来测试5、 创建test view在app/views创建user目录,这个目录将存放所有user的view文件,view文件是标准的php文件,不过扩展名要改为thtml。这里先建一个test.thtml小探一下,对应于上面UserController的test方法。test.thtml的代码如下:?phpecho $testStr;echo ;echo $strFromUrl?仅仅输出controller的test方法传过来的testStr和strFromUrl变量,其中strFromUrl包含了网址传过来的参数。现在打开/cake/user/test/这个是参数 ,就可以看到效果了。6、 创建注册页面在UserController里加入register函数,代码如下:function register()if(!empty($this-data)$this-cleanUpFields();if($this-User-save($this-data)$this-Session-setFlash(注册成功);表单提交的数据会放在controller中的$this-data里,$this-User是user model的对象,save是一个model方法,用来保存数据。在这里get和post依然有效。具体参照model的api文档。创建注册页面的view文件app/views/user/register.thtml,代码如下:用户注册信息用户名input(,array(label=false); ?密码password(user.password); ?确认密码password(user.password2);?Emailinput(user.email,array(label=false); ?年龄input(user.age,array(label=false); ?个人主页input(user.website,array(label=false); ?submit(注册);?这里的$form是就是controller里$helpers = array(Html, Form )的Form helper的对象,用来生产html代码。其中$form-input(,array(label=false,)生成的代码如下:,具体看api吧。这里的user对应于model中的name,这样就可以直接用save之类的方法保存或作为查询条件。现在打开/cake/user/register 注册一个用户7、 创建登录页面在UserController里加入一个login方法,代码如下:function login()$this-set(error,false);if($this-data)$user=$this-User-find($this-data);if($user)$this-Session-write(login,array(id=$useruserid,name=$userusername);$this-redirect(viewinfo);else$this-set(error,用户名不存在或密码错误);直接用用户名和密码查询用户,如果这个用户存在就写session,并跳转到用户信息页面,没有就警告。在创建login的view文件app/views/user/login.thtml,代码如下:用户登录用户名input(,array(label=false); ?密码input(user.password,array(label=false); ?submit(登录);?8、 创建用户信息页面首先在UserController里加入viewinfo方法,如下:function viewinfo()if($login=$this-Session-read(login)$this-data=$this-User-read(null,$loginid);else$this-redirect(login);这里先判断用户有没有登录,有就读出用户的信息,没有就跳到登录页面。接着是查看用户信息的view app/views/user/viewinfo.thtml,如下:用户资料用户名value(); ?密码value(user.password); ?Emailvalue(user.email); ?年龄value(user.age); ?个人主页value(user.website); ?同样的方法做编辑用户信息的页面,在UserController里加editinfo方法,如下:function editinfo()if($login=$this-Session-read(login)if(empty($this-data)$this-data=$this-User-read(null,$loginid);else$this-datauserid=$loginid;/防止修改了别的数据$this-User-save($this-data);else$this-redirect(login);也是先判断有没有登录,没有就跳到登录页面;有的话先判断有没有提交数据,有提交数据就保存,没有就从数据库中读出。编辑用户信息的view文件 app/views/user/editinto.thtml如下:用户注册信息用户名input(,array(label=false); ?密码password(user.password); ?Emailinput(user.email,array(label=false); ?年龄input(user.age,array(label=false); ?个人主页input(user.website,array(label=false); ?submit(保存);?最后还需要注销,在UserController里加入logout方法,如下:function logout()$this-Session-delete(login);$this-redirect(login);这里注销后直接跳到login页面,就不需要view了。现在重新注册一个用户并登录试试吧。9、 创建layoutlayout其实就是一个包含头、脚和通用菜单但缺少我们刚才创建的主体内容的html页面。没有layout的页面很难看,现在创建一个吧。在app/view/layouts下创建caketest.thtml文件,代码如下:lifloat:left;border-left:1px solid #654321;padding:0 10px 0 10pxli acolor:#654321;text-decoration:noneli a:hovercolor:orangeinputwidth:120px;height:20pxtabletext-align:leftlink(查看用户信息,/use

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论