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 相关文章推荐
在Zeus Web Server中安装PHP语言支持
Oct 09 PHP
php 5.3.5安装memcache注意事项小结
Apr 12 PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
sql注入与转义的php函数代码
Jun 17 PHP
PHP实现对文本数据库的常用操作方法实例演示
Jul 04 PHP
php实现Linux服务器木马排查及加固功能
Dec 29 PHP
PHP使用适合阅读的格式显示文件大小的方法
Mar 05 PHP
PHP之浮点数计算比较以及取整数不准确的解决办法
Jul 29 PHP
php实现数组纵向转横向并过滤重复值的方法分析
May 29 PHP
PHP+ajax实现获取新闻数据简单示例
May 08 PHP
ThinkPHP like模糊查询,like多匹配查询,between查询,in查询,一般查询书写方法
Sep 26 PHP
浅谈php://filter的妙用
Mar 05 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
DSP接收机前端设想
2021/03/02 无线电
不错的一篇面向对象的PHP开发模式(简写版)
2007/03/15 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
利用PHP函数计算中英文字符串长度的方法
2014/11/11 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
PHP解压ZIP文件到指定文件夹的方法
2016/11/17 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
jQuery 表单验证扩展代码(二)
2010/10/20 Javascript
为radio类型的INPUT添加客户端脚本(附加实现JS来禁用onClick事件思路代码)
2010/11/11 Javascript
奉献给JavaScript初学者的编写开发的七个细节
2011/01/11 Javascript
javascript学习笔记(五) Array 数组类型介绍
2012/06/19 Javascript
jQuery 事件的命名空间简单了解
2013/11/22 Javascript
javascript解析json实例详解
2014/11/05 Javascript
Node.js和MongoDB实现简单日志分析系统
2015/04/25 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
JavaScript实现跨浏览器的添加及删除事件绑定函数实例
2015/08/04 Javascript
jQuery蓝色风格滑动导航栏代码分享
2015/08/19 Javascript
详解JavaScript基于面向对象之创建对象(1)
2015/12/10 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
vue favicon设置以及动态修改favicon的方法
2018/12/21 Javascript
layer弹出层扩展主题的方法
2019/09/11 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
如何在 ant 的table中实现图片的渲染操作
2020/10/28 Javascript
Python3.x对JSON的一些操作示例
2017/09/01 Python
python导出chrome书签到markdown文件的实例代码
2017/12/27 Python
python实现二维数组的对角线遍历
2019/03/02 Python
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
世界上最大的餐具公司:Oneida
2016/12/17 全球购物
澳大利亚拥有最好的家具和家居用品在线目的地:Nestz
2019/02/23 全球购物
RealTek面试题
2016/06/28 面试题
室内设计自我鉴定
2013/10/15 职场文书
违反交通法规检讨书
2014/09/10 职场文书
离婚协议书标准格式
2014/10/04 职场文书
2016年优秀共青团员事迹材料
2016/02/25 职场文书
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js