cakephp官网建博客笔记

  1. 建数据库posts(命名有玄机)
  2. 根据数据库建Post模型
    CakePHP的模型文件位于/app/Model/下,在该路径下创建Post.php(extends AppModel)
    [命名规范对于CakePHP十分重要,通过命名模型为Post,CakePHP能自动关联该模型到Posts Controller控制器以及之前创建的posts表]

    作用:通过建立Post模型,之后我们可以在视图层中创建 “显示/添加/修改/删除”博客文章的逻辑

  3. 建控制器,控制博客的各种逻辑,并且可以在浏览器中访问,文件在/app/Controller/下,建PostsController.php(extends AppController)

class PostsController extends AppController{
    public $name = 'Posts';//设置正确的驼峰格式类名
    public $helpers = array('Html','Form');//用变量让Controller把helper加载到它的views中去,一定要有'Html'变量在数组中
    public function index(){
        $this->set('posts',$this->Post->find('all'));
    }//添加方法控制器方法,用于显示所有文章列表,通过该方法用户可以通过浏览器访问相对应的页面,如www.example/posts/index方法该方法对应的页面
}

代码解析:
index()调用了set(),set()用于从控制器中传递数据到视图文件,上述代码意思是创建一个posts变量,该变量被赋予参数二的值。$this->Post用于在PostsController控制器中获取Post模型实例,再通过find()获取Posts模型中所有记录,并以数组形式返回

4.建视图
Cakephp视图文件全包含在布局文件(Layout)内部,对多数应用来说视图包含HTML+PHP代码,也包括XML/CSV等形式文件在/app/View/Posts/下,(视图文件需要根据控制器名放在不同的目录下,需另外建一个Posts文件夹)文件类型index.ctp

5.CakePHP中URL组织方式–数组
总结:通过正确的命名规范,CakePHP会自动将模型与数据库关联起来,同样根据命名规范以及系统结构,CakePHP框架能自动判断模型,控制器与视图文件之间的联系与位置
大致流程是这样,具体流程请看:justcoding.iteye.com/blog/1692036

6.CakePHP调试方法:pr()输出数组

7. this>Html>link( val1,$val2)
通过link()方法生成一个HTML链接,val1是链接显示文字,参数二是链接地址

8.CakePHP表单助手
$this->Form->Create();//创表头

$this->Form->input();//用于input表单元素,参数一用户匹配数据库字段,参数二用于指定该表单元素的各种设置,以索引数组形式组织

$this->Form->end();//用于生成表单提交按钮,并完成表单HTML代码的结尾部分,该方法如果指定参数,则用于表单提交按钮中的按钮文字

9.$this->request();//获取CakeRequest请求对象

$this->is();//判断

$this->Post->save($this->request->data);//根据对象再获取其data属性中的值,再用save()保存表单提交来的数据到数据库中

10.public $components=array(‘Session’);//添加组件

$this->Session->setFlash(‘新文章创建成功’);//session组件用于设置一段消息并保存在session变量中,该段消息可以在页面转向后展示在视图文件中,与之对应的是SessionHelper : Hash()方法,在转向后的视图文件中显示该消息,显示结束后,系统会自动销毁该变量,再次刷新页面就不会再次显示该消息

11.$this->redirect(array(‘action’=>’index’));//控制器的流程控制方法,该方法同样使用数组形式作为URL地址,上述代码的意思是转向到当前控制器Posts的index()方法

12.CakePHP表单数据验证
public $validate = array(‘title’=>array(‘rule’=>’notEmpty’));通过$validate属性定义表字段的验证规则,该验证规则主要面向用户通过表单提交的数据
validate属性属于模型,写在/app/Model/Post.php文件里
【CakePHP强大的表单验证功能建立在–通过FormHelper表单助手来创建表单元素,若是通过HTML标签进行编码,则无法用此功能】

13.$this->request->data = $this->Post->read();将获取的数据显示出来

14 CakePHP有专门用于操作数据库的函数
删除数据库操作$this->Post->delete($id)

15.$this->Forms->postLink();该方法在表单助手中定义,使用Javascript创建POST请求完成删除操作
【安全提示:通过GET方式创建删除的操作非常危险,用户可以轻易掌握删除动作的URL地址,并更改id信息删除所有内容】

16.CakePHP路由器
CakePHP的默认响应请求(访问www.example.com)是使用PagesController控制器,然后输出home.ctp,可更改,找到路由配置文件/app/Config/routes.php替换Router::connect内容即可

17.css / js / img文件需放在webroot下

18 前端展示页面若有公共的抬头(格局)应放在View/Layouts里,放除body以外的东西,在原来body的地方写一句<?php echo $this->fetch('contents');?>

19.$this->params最常用的用法是用于访问客户端通过POST或GET方法提交给controller的参数列表

20.移动文件(仅能移动posts上传的文件)
$upload_dir=’指定放置路径’;
move_uploaded_file($_FILES[‘_f’][‘tmp_name’],$upload_dir.$FILES[‘_f’][‘tmp_name’]);
//tmp_name是上传文件临时位置,文件上传后都是先放在服务器的一个临时文件夹中,再由move_uploaded_file来移动到你需要的位置,若不移动的话,文件会被自动删除

21.页面跳转

 $this->redirect(array("controller"=>"Video","action"=>"index",'?'=>$result['msg']));

22.弹框html页面下

<?php if($tag==1){
    echo "<script type='text/javascript'>
    alert('文件过大');</script>";
    }
    ...
?>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值