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 相关文章推荐
BBS(php &amp; mysql)完整版(七)
Oct 09 PHP
在PHP里得到前天和昨天的日期的代码
Aug 16 PHP
PHP查询MySQL大量数据的时候内存占用分析
Jul 22 PHP
CI(CodeIgniter)框架中的增删改查操作
Jun 10 PHP
php定义参数数量可变的函数用法实例
Mar 16 PHP
php获取文件类型和文件信息的方法
Jul 10 PHP
详解PHP防止盗链防止迅雷下载的方法
Apr 26 PHP
使用php自动备份数据库表的实现方法
Jul 28 PHP
Laravel中正确地返回HTTP状态码方法示例
Sep 10 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
Oct 02 PHP
在laravel-admin中列表中禁止某行编辑、删除的方法
Oct 03 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
May 02 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
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
php dirname(__FILE__) 获取当前文件的绝对路径
2011/06/28 PHP
php中模拟POST传递数据的两种方法分享
2011/09/16 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
2013/06/09 PHP
php实现webservice实例
2014/11/06 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
PHP实现二维数组根据key进行排序的方法
2016/12/30 PHP
PHP实现基于面向对象的mysqli扩展库增删改查操作工具类
2017/07/18 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
2011/08/09 Javascript
extjs实现选择多表自定义查询功能 前台部分(ext源码)
2011/12/20 Javascript
JQuery UI的拖拽功能实现方法小结
2012/03/14 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
JavaScript如何自定义trim方法
2015/07/28 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
jQuery代码实现对话框右上角菜单带关闭×
2016/05/03 Javascript
AngularJs页面筛选标签小功能
2016/08/01 Javascript
JavaScript面试题大全(推荐)
2016/09/22 Javascript
Javascript中this绑定的3种方法与比较
2016/10/13 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
JS正则匹配中文的方法示例
2017/01/06 Javascript
详解Angular 开发环境搭建
2017/06/22 Javascript
node.js域名解析实现方法详解
2019/11/05 Javascript
python保存文件方法小结
2018/07/27 Python
使用python获取电脑的磁盘信息方法
2018/11/01 Python
Python Pillow Image Invert
2019/01/22 Python
python3实现猜数字游戏
2020/12/07 Python
python被修饰的函数消失问题解决(基于wraps函数)
2019/11/04 Python
意大利在线药房:shop-farmacia.it
2019/03/12 全球购物
通信专业个人自我鉴定
2013/10/21 职场文书
土木建筑学生自我评价
2014/01/14 职场文书
道路施工安全责任书
2014/07/24 职场文书
协会周年庆活动方案
2014/08/26 职场文书
XX部保密工作制度范本
2019/08/27 职场文书
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS