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转成EXE文件
Oct 09 PHP
浅谈PHP语法(1)
Oct 09 PHP
计算2000年01月01日起到指定日的天数
Oct 09 PHP
php循环检测目录是否存在并创建(循环创建目录)
Jan 06 PHP
php数据库抽象层 PDO
May 07 PHP
coreseek 搜索英文的问题详解
Jun 08 PHP
PHP中对缓冲区的控制实现代码
Sep 29 PHP
php 生成短网址原理及代码
Jan 23 PHP
php通过递归方式复制目录和子目录的方法
Mar 13 PHP
php计算函数执行时间的方法
Mar 20 PHP
PHP开发的微信现金红包功能示例
Jun 29 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
Feb 11 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
不使用php api函数实现数组的交换排序示例
2014/04/13 PHP
WordPress中获取所使用的模板的页面ID的简单方法
2015/12/31 PHP
用javascript自动显示最后更新时间
2007/03/15 Javascript
用js统计用户下载网页所需时间的脚本
2008/10/15 Javascript
JavaScript Konami Code 实现代码
2009/07/29 Javascript
JS学习之一个简易的日历控件
2010/03/24 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
2010/04/24 Javascript
JavaScript实现GriwView单列全选(自写代码)
2013/05/13 Javascript
关闭页面时window.location事件未执行的原因分析及解决方案
2014/09/01 Javascript
JavaScript通过字典进行字符串翻译转换的方法
2015/03/19 Javascript
JavaScript在浏览器标题栏上显示当前日期和时间的方法
2015/03/19 Javascript
使用javascript提交form表单方法汇总
2015/06/25 Javascript
jQuery+PHP实现微信转盘抽奖功能的方法
2016/05/25 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
手把手教你使用TypeScript开发Node.js应用
2019/05/06 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
小程序如何写动态标签的实现方法
2020/02/05 Javascript
浅谈python中的数字类型与处理工具
2017/08/02 Python
Python3中内置类型bytes和str用法及byte和string之间各种编码转换 问题
2018/09/27 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
2018/11/23 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
Ranorex通过Python将报告发送到邮箱的方法
2020/01/12 Python
python两个list[]相加的实现方法
2020/09/23 Python
PyCharm安装PyQt5及其工具(Qt Designer、PyUIC、PyRcc)的步骤详解
2020/11/02 Python
美国一家运动专业鞋类零售商:Warehouse Shoe Sale(WSS)
2018/03/28 全球购物
C++:局部变量能否和全局变量重名
2014/03/03 面试题
迟到检讨书大全
2014/01/25 职场文书
演讲主持词
2014/03/18 职场文书
计算机系本科生求职信
2014/05/31 职场文书
求职意向书
2014/07/29 职场文书
授权委托书(法人单位用)
2014/09/29 职场文书
家长通知书家长意见
2015/06/03 职场文书
大学开学感言
2015/08/01 职场文书
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技