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 相关文章推荐
preg_match_all使用心得分享
Jan 31 PHP
thinkphp命名空间用法实例详解
Dec 30 PHP
php unicode编码和字符串互转的方法
Aug 12 PHP
PHP图片裁剪与缩放示例(无损裁剪图片)
Feb 08 PHP
thinkPHP简单调用函数与类库的方法
Mar 15 PHP
ThinkPHP框架实现导出excel数据的方法示例【基于PHPExcel】
May 12 PHP
php post json参数的传递和接收处理方法
May 31 PHP
PHP使用SOAP调用API操作示例
Dec 25 PHP
php中访问修饰符的知识点总结
Jan 27 PHP
PHP html_entity_decode()函数讲解
Feb 25 PHP
PHP析构函数destruct与垃圾回收机制的讲解
Mar 22 PHP
PHP7 list() 函数修改
Mar 09 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
CodeIgniter基本配置详细介绍
2013/11/12 PHP
php读取csv实现csv文件下载功能
2013/12/18 PHP
PHP实现的连贯操作、链式操作实例
2014/07/08 PHP
php pdo oracle中文乱码的快速解决方法
2016/05/16 PHP
PHP上传文件及图片到七牛的方法
2018/07/25 PHP
解放web程序员的输入验证
2006/10/06 Javascript
Prototype 学习 Prototype对象
2009/07/12 Javascript
基于JQuery的6个Tab选项卡插件
2010/09/03 Javascript
Extjs改变树节点的勾选状态点击按钮将复选框去掉
2013/11/14 Javascript
基于javascript实现全国省市二级联动下拉选择菜单
2016/01/28 Javascript
js重写方法的简单实现
2016/07/10 Javascript
js实现背景图自适应窗口大小
2017/01/10 Javascript
windows 下安装nodejs 环境变量设置
2017/02/02 NodeJs
JSONP跨域请求
2017/03/02 Javascript
Vue项目引发的「过滤器」使用教程
2019/03/12 Javascript
JS实现灯泡开关特效
2020/03/30 Javascript
优化Vue中date format的性能详解
2020/01/13 Javascript
js实现页面图片消除效果
2020/03/24 Javascript
详解为什么Vue中不要用index作为key(diff算法)
2020/04/04 Javascript
Vue使用预渲染代替SSR的方法
2020/07/02 Javascript
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
Python闭包实现计数器的方法
2015/05/05 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
2019/07/19 Python
Python实现使用dir获取类的方法列表
2019/12/24 Python
将数据集制作成VOC数据集格式的实例
2020/02/17 Python
CSS3制作苹果风格键盘特效
2015/02/26 HTML / CSS
AmazeUI的JS表单验证框架实战示例分享
2020/08/21 HTML / CSS
儿科主治医生个人求职信
2013/09/23 职场文书
数学专业推荐信范文
2013/11/21 职场文书
寒假实习自荐信
2014/01/26 职场文书
解除合同协议书
2014/04/17 职场文书
2014年秋季开学典礼主持词
2014/08/02 职场文书
2015年校长新年寄语
2014/12/08 职场文书
mysql批量新增和存储的方法实例
2021/04/07 MySQL
Pandas数据类型之category的用法
2021/06/28 Python