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脚本的10个技巧(3)
Oct 09 PHP
解决php中Cannot send session cache limiter 的问题的方法
Apr 27 PHP
中国站长站 For Dede4.0 采集规则
May 27 PHP
php网站判断用户是否是手机访问的方法
Nov 01 PHP
php中header跳转使用include包含解决参数丢失问题
May 08 PHP
php遍历树的常用方法汇总
Jun 18 PHP
实例讲解YII2中多表关联的使用方法
Jul 21 PHP
php实现的rc4加密解密类定义与用法示例
Aug 16 PHP
PHP中Static(静态)关键字功能与用法实例分析
Apr 05 PHP
Laravel自定义 封装便捷返回Json数据格式的引用方法
Sep 29 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 PHP
详解php反序列化
Jun 10 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
一个ubbcode的函数,速度很快.
2006/10/09 PHP
PHP 存储文本换行实现方法
2010/01/05 PHP
php自定义apk安装包实例
2014/10/20 PHP
PHP中使用Imagick操作PSD文件实例
2015/01/26 PHP
Smarty缓存机制实例详解【三种缓存方式】
2019/07/20 PHP
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
JavaScript 32位整型无符号操作示例
2013/12/08 Javascript
jQuery制作仿Mac Lion OS滚动条效果
2015/02/10 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
jQuery Tree Multiselect使用详解
2017/05/02 jQuery
Bootstrap实现翻页效果
2017/11/27 Javascript
express+vue+mongodb+session 实现注册登录功能
2018/12/06 Javascript
使用JavaScript保存文本文件到本地的两种方法
2019/01/22 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
2019/11/20 Javascript
Javascript实现鼠标点击冒泡特效
2019/12/24 Javascript
实例讲解JavaScript 计时事件
2020/07/04 Javascript
VUE项目实现主题切换的多种方法
2020/11/26 Vue.js
Python实现获取命令行输出结果的方法
2017/06/10 Python
初探TensorFLow从文件读取图片的四种方式
2018/02/06 Python
Python numpy.array()生成相同元素数组的示例
2018/11/12 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
python中对数据进行各种排序的方法
2019/07/02 Python
python try except返回异常的信息字符串代码实例
2019/08/15 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
python def 定义函数,调用函数方式
2020/06/02 Python
基于Canvas+Vue的弹幕组件的实现
2019/07/23 HTML / CSS
东方电视购物:东方CJ
2016/10/12 全球购物
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
小学竞选班干部演讲稿
2014/08/20 职场文书
2014年语文教研组工作总结
2014/12/06 职场文书
部门主管竞聘书
2015/09/15 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
Redis Cluster 集群搭建你会吗
2021/08/04 Redis