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批量生成随机用户名
Jul 10 PHP
php echo 输出字符串函数详解
May 13 PHP
小文件php+SQLite存储方案
Sep 04 PHP
web站点获取用户IP的安全方法 HTTP_X_FORWARDED_FOR检验
Jun 01 PHP
深入php中var_dump方法的使用详解
Jun 24 PHP
Yii中使用PHPExcel导出Excel的方法
Dec 26 PHP
php实现计算百度地图坐标之间距离的方法
May 05 PHP
浅谈PHP的反射机制
Dec 15 PHP
Zend Framework数据库操作技巧总结
Feb 18 PHP
Mac系统下安装PHP Xdebug
Mar 30 PHP
PHP实现动态压缩js与css文件的方法
May 02 PHP
PHP实现非阻塞模式的方法分析
Jul 26 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
收听短波不可能有声音清晰的品质吗
2021/03/01 无线电
jQuery 源码分析笔记
2011/05/25 PHP
PHP7内核CGI与FastCGI详解
2019/04/14 PHP
JS window.opener返回父页面的应用
2009/10/24 Javascript
新手常遇到的一些jquery问题整理
2010/08/16 Javascript
用js写了一个类似php的print_r输出换行功能
2013/02/18 Javascript
JS获取后台Cookies值的小例子
2013/03/04 Javascript
jQuery布局插件UI Layout简介及使用方法
2013/04/03 Javascript
一个实用的图片切换支持点击切换和自动轮播
2014/09/09 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
分享jQuery插件的学习笔记
2016/01/14 Javascript
详解Sea.js中Module.exports和exports的区别
2017/02/12 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
2017/02/20 Javascript
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
angular5 httpclient的示例实战
2018/03/12 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
python任务调度实例分析
2015/05/19 Python
python实现txt文件格式转换为arff格式
2018/05/31 Python
PyCharm+PySpark远程调试的环境配置的方法
2018/11/29 Python
python 反编译exe文件为py文件的实例代码
2019/06/27 Python
python 实现多线程下载视频的代码
2019/11/15 Python
Python中低维数组填充高维数组的实现
2019/12/02 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
解决Python中报错TypeError: must be str, not bytes问题
2020/04/07 Python
Python pymysql模块安装并操作过程解析
2020/10/13 Python
python中字符串的编码与解码详析
2020/12/03 Python
Python爬虫之App爬虫视频下载的实现
2020/12/08 Python
美国酒店控股公司:Choice Hotels
2018/06/15 全球购物
玉兰油美国官网:OLAY美国
2018/10/25 全球购物
摄影实习自我鉴定
2013/09/20 职场文书
国税会议欢迎词
2014/01/16 职场文书
文员岗位职责范本
2014/03/08 职场文书
大学新生军训自我鉴定范文
2014/09/13 职场文书
2014矛盾纠纷排查调处工作总结
2014/12/09 职场文书
《三国志》赏析
2019/08/27 职场文书
在Python中如何使用yield
2021/06/07 Python