cakephp常见知识点汇总


Posted in PHP onFebruary 24, 2017

本文实例总结了cakephp常见知识点。分享给大家供大家参考,具体如下:

1. 调用其他控制器的模板,重定向

方法一:

在此调用/views/tasks/tasks下的hello.ctp模板

$this -> viewPath = 'tasks';
$this -> render('hello');

方法二(带参):

$this->redirect(array('controller'=>'users','action'=>'welcome',urlencode($this->data['姓名'].'haha')));

2. 查询

直接使用sql:

$this->PostContent->query("select * from user");
find():
$clue = $this->clue->find('all',
  array(
    'fields' =>array(
      'id',
      'title',
      'content'
    ),
    'order' => 'id ASC',
    'conditions' => array('id' => '1'),
  )
);

find的参数,第一个可以是all、first、count,第二个参数为一数组,数组的key可以是:conditions、fields、order、limit、offset、joins。

添加:

$this->clue->create();
$this->clue->save($this->data);

修改:

$this->clue->create();
$this->clue->save($this->data);

删除:

$this->clue->delete($id)

3. 不需要公共样式时

$this->layout = false;

不用渲染任何view

$this->autoRender = false;

4. 定义公共的方法/类

方法一:

可以在/app/Controller/AppController.php中定义公共的方法

调用

$this->test();

方法二:

在/app/controllers/components中创建UtillComponent.php

<?php
  class UtillComponent extends Object
  {
   function juanstr ($str) {
     return $str.'+juanstr';
   }
  }
?>

调用:

var $components = array('Utill');
$digit1 = $this->Utill->juanstr($digit1);

5. 定义提示信息

$this->Session->setFlash(__('The user has been saved'));

<p class="wrong"><?php echo $this->Session->flash();?></p>

或者

$this->Session->write('Message.auth',array('message'=>__('The user has been saved.',true),'element'=>'','params'=>array()));

<p class="wrong"><?php echo $this->Session->flash('auth');?></p>

6. session设置

可参考:https://3water.com/article/106557.htm

check(string $name);

检查Session中是否已有$name为键值的数据项.

del(string $name);
delete(string $name);

删除$name 指定的 Session 变量。

valid当Session有效时返回true,最好在read()操作前用它来确定你要访问的会话是否确实有效.

read(string $name);

返回 $name 变量值。

renew

通过创建新的seesion ID,删除原有的ID,将原有Session中信息更新到新的Session中。

write(string $name, mixed $value);

将变量 $name,$value写入会话.

error

返回最近由 Cake Session Component 产生的错误,常用于调试。

7. 表单

<?php echo $this->Form->create('Subject',array(
  'type' => 'post',
  'inputDefaults'=>array(
    'div'=>false,
    'label'=>false
    ),
  'url'=>array(
      'controller'=>'subjects',
      'action'=>'edit'
    ),
  'onsubmit'=>'return validateCallback(this, dialogAjaxDone);' //提交前验证
  )
);
echo $this->Form->input('id',array('type'=>'hidden'));
echo $this->Form->input('uid',array('type'=>'hidden'));
?>
<ul class="usr_info_basic">
<li>
  <div class="ti">下拉单选(编辑页面会自动判断选中)</div>
  <div class="ce">
<?php echo $this->Form->input('type',array('type'=>'select' ,'class'=>'ipt','options' => array(0=>'文章',1=>'专题', 2=>'图组')));?>
  </div>
</li>
<li>
  <div class="ti">多选</div>
  <div class="ce">
<?php
  echo $this->Form->input('pushtype', array('type'=>'select',
    'options' => $pushtype,//所有选项
    'multiple'=>'checkbox',
    'selected' => $pushtypes,//选中的项
));
?>
  </div>
</li>
</ul>
<div class="btns_3">
  <button class="btn3" type="submit"><span>保存</span></button>
  <button class="btn3 btn3_1 close"><span>取消</span></button>
</div>
<?php echo $this->Form->end();?>

8. 日志$this->log();

在controller直接调用:

$this->log('Something brok2',LOG_DEBUG);

或view里调用:

<?php $this->log('Something brok2',LOG_DEBUG); ?>

日志的类型大致有以下几种:

$levels = array(
  LOG_WARNING=> 'warning',
  LOG_NOTICE=> 'notice',
  LOG_INFO=> 'info',
  LOG_DEBUG=> 'debug',
  LOG_ERR=> 'error',
  LOG_ERROR=> 'error'
);

日志文件都保存在/app/tmp/logs目录。

在/app/config/core.php文件中有日志的配置选项:

define('LOG_ERROR', 2);

9. 渲染路径

echo APP . 'webroot' . DS;
//D:\wamp\www\cakephp\app\webroot\
echo APP . 'webroot' ;
D:\wamp\www\cakephp\app\webroot
PHP 相关文章推荐
PHP获取类中常量,属性,及方法列表的方法
Apr 09 PHP
PHP5中使用DOM控制XML实现代码
May 07 PHP
基于simple_html_dom的使用小结
Jul 01 PHP
php面向对象中的魔术方法中文说明
Mar 04 PHP
php中opendir函数用法实例
Nov 15 PHP
Symfony数据校验方法实例分析
Jan 26 PHP
php简单复制文件的方法
May 09 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
PHP封装的page分页类定义与用法完整示例
Dec 24 PHP
PHP7内核CGI与FastCGI详解
Apr 14 PHP
laravel ORM关联关系中的 with和whereHas用法
Oct 16 PHP
Laravel框架Eloquent ORM删除数据操作示例
Dec 03 PHP
基于php(Thinkphp)+jquery 实现ajax多选反选不选删除数据功能
Feb 24 #PHP
PHP函数rtrim()使用中的怪异现象分析
Feb 24 #PHP
CakePHP框架Session设置方法分析
Feb 23 #PHP
cakephp2.X多表联合查询join及使用分页查询的方法
Feb 23 #PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
Feb 23 #PHP
php实现的XML操作(读取)封装类完整实例
Feb 23 #PHP
利用php生成验证码
Feb 23 #PHP
You might like
第十节 抽象方法和抽象类 [10]
2006/10/09 PHP
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
sourcesafe管理phpproj文件的补充说明(downmoon)
2009/04/11 PHP
创建数据库php代码 用PHP写出自己的BLOG系统
2010/04/12 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
WordPress中查询文章的循环Loop结构及用法分析
2015/12/17 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
Javascript获取图片原始宽度和高度的方法详解
2016/09/20 Javascript
Centos7 中安装 Node.js v4.4.4
2016/11/03 Javascript
js实现旋转木马效果
2017/03/17 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
Bootstrap实现下拉菜单多级联动
2017/11/23 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
vue移动端微信授权登录插件封装的实例
2018/08/28 Javascript
你了解vue3.0响应式数据怎么实现吗
2019/06/07 Javascript
d3.js实现图形缩放平移
2019/12/19 Javascript
[42:32]Secret vs Optic 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python实现应用程序在右键菜单中添加打开方式功能
2017/01/09 Python
Python pycharm 同时加载多个项目的方法
2019/01/17 Python
实例介绍Python中整型
2019/02/11 Python
详解Python3 中的字符串格式化语法
2020/01/15 Python
PyCharm 光标变成黑块的解决方式
2021/02/06 Python
HTML5引入的新数组TypedArray介绍
2012/12/24 HTML / CSS
世界著名的顶级牛排:Omaha Steak(奥马哈牛排)
2016/09/20 全球购物
广州御银科技股份有限公司试卷(C++)
2016/11/04 面试题
化工专业应届生求职信
2013/11/08 职场文书
公务员平时考核实施方案
2014/03/11 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
基于python制作简易版学生信息管理系统
2021/04/20 Python
postgresql使用filter进行多维度聚合的解决方法
2021/07/16 PostgreSQL