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中ADODB类详解
Mar 25 PHP
Godaddy空间Zend Optimizer升级方法
May 10 PHP
php中session_unset与session_destroy的区别分析
Jun 16 PHP
yiic命令时提示“php.exe”不是内部或外部命令的解决方法
Dec 18 PHP
PHP实现在线阅读PDF文件的方法
Jun 23 PHP
PHP如何通过传引用的思想实现无限分类(代码简单)
Oct 13 PHP
php简单的上传类分享
May 15 PHP
PHP使用curl制作简易百度搜索
Nov 03 PHP
PHP数组生成XML格式数据的封装类实例
Nov 10 PHP
php中Ioc(控制反转)和Di(依赖注入)
May 07 PHP
laravel框架中间件 except 和 only 的用法示例
Jul 12 PHP
php实现QQ小程序发送模板消息功能
Sep 18 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.ini 配置文件的深入解析
2013/06/17 PHP
PHP结合Ueditor并修改图片上传路径
2016/10/16 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
Laravel框架Eloquent ORM删除数据操作示例
2019/12/03 PHP
用Javascript读取中文COOKIE的解决办法
2007/02/15 Javascript
Jquery实现搜索框提示功能示例代码
2013/08/13 Javascript
javascript背景时钟实现方法
2015/06/18 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
详解vue更改头像功能实现
2019/04/28 Javascript
VUE前后端学习tab写法实例
2019/08/06 Javascript
关于在LayUI中使用AJAX提交巨坑记录
2019/10/25 Javascript
js+canvas实现纸牌游戏
2020/03/16 Javascript
VUE使用 wx-open-launch-app 组件开发微信打开APP功能
2020/08/11 Javascript
详解Django通用视图中的函数包装
2015/07/21 Python
Python变量和数据类型详解
2017/02/15 Python
如何在Python中实现goto语句的方法
2019/05/18 Python
浅析Python3中的对象垃圾收集机制
2019/06/06 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
python json 递归打印所有json子节点信息的例子
2020/02/27 Python
Python之Matplotlib文字与注释的使用方法
2020/06/18 Python
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
Vans澳大利亚官网:购买鞋子、服装及配件
2019/09/05 全球购物
自动一体化专业求职信
2014/03/15 职场文书
教师优秀党员事迹材料
2014/08/14 职场文书
科级干部群众路线教育实践活动对照检查材料思想汇报
2014/09/20 职场文书
检讨书格式
2015/01/23 职场文书
2015年小学数学教研组工作总结
2015/05/21 职场文书
无故旷工检讨书
2015/08/15 职场文书
《静夜思》教学反思
2016/02/17 职场文书
初中政治教学反思
2016/02/23 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
python基础学习之递归函数知识总结
2021/05/26 Python
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js