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 相关文章推荐
修改Zend引擎实现PHP源码加密的原理及实践
Apr 14 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
Apr 13 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
Sep 16 PHP
使用淘宝IP库获取用户ip地理位置
Oct 27 PHP
php字符编码转换之gb2312转为utf8
Oct 28 PHP
Codeigniter上传图片出现“You did not select a file to upload”错误解决办法
Jun 12 PHP
CI框架中cookie的操作方法分析
Dec 12 PHP
php将一维数组转换为每3个连续值组成的二维数组
May 06 PHP
php实现数据库的增删改查
Feb 26 PHP
PHP 文件锁与进程锁的使用示例
Aug 07 PHP
php微信开发之关注事件
Jun 14 PHP
php写入mysql中文乱码的实例解决方法
Sep 17 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 mkdir()定义和用法
2009/01/14 PHP
php下使用curl模拟用户登陆的代码
2010/09/10 PHP
PHP生成压缩文件实例
2015/02/07 PHP
php HTML无刷新提交表单
2016/04/05 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
php静态成员方法和静态的成员属性的使用方法
2017/10/26 PHP
file模式访问网页时iframe高度自适应解决方案
2013/01/16 Javascript
js从10种颜色中随机取色实现每次取出不同的颜色
2013/10/23 Javascript
window.returnValue使用方法示例介绍
2014/07/03 Javascript
Javascript基础教程之if条件语句
2015/01/18 Javascript
详谈LABJS按需动态加载js文件
2015/05/07 Javascript
JavaScript中Number.MIN_VALUE属性的使用示例
2015/06/04 Javascript
使用AngularJS来实现HTML页面嵌套的方法
2015/06/17 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
Vue.js绑定HTML class数组语法错误的原因分析
2016/10/19 Javascript
微信小程序实战之仿android fragment可滑动底部导航栏(4)
2020/04/16 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
使用mint-ui实现省市区三级联动效果的示例代码
2018/02/09 Javascript
element-ui树形控件后台返回的数据+生成组织树的工具类
2020/03/05 Javascript
JavaScript命令模式原理与用法实例详解
2020/03/10 Javascript
ubuntu系统下 python链接mysql数据库的方法
2017/01/09 Python
详解python 拆包可迭代数据如tuple, list
2017/12/29 Python
Python学习之Django的管理界面代码示例
2018/02/10 Python
Django 跨域请求处理的示例代码
2018/05/02 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
python中count函数知识点浅析
2020/12/17 Python
基于CSS3实现的黑色个性导航菜单效果
2015/09/14 HTML / CSS
美国最大的万圣节服装网站:HalloweenCostumes.com
2017/10/12 全球购物
Gucci法国官方网站:意大利奢侈品牌
2018/07/25 全球购物
SheIn沙特阿拉伯:女装在线
2020/03/23 全球购物
文明学生标兵事迹
2014/01/21 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
弘扬焦裕禄精神践行三严三实心得体会
2014/10/13 职场文书
2014年派出所工作总结
2014/11/21 职场文书
党员自评材料范文
2014/12/17 职场文书
处理canvas绘制图片模糊问题
2022/05/11 Javascript