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 相关文章推荐
PHP5新特性: 更加面向对象化的PHP
Nov 18 PHP
PHP-MySQL教程归纳总结
Jun 07 PHP
destoon后台网站设置变成空白的解决方法
Jun 21 PHP
php获取用户浏览器版本的方法
Jan 03 PHP
PHP实现HTTP断点续传的方法
Jun 17 PHP
Yii中创建自己的Widget实例
Jan 05 PHP
php实现学生管理系统
Mar 21 PHP
php基于openssl的rsa加密解密示例
Jul 11 PHP
Yii2框架实现注册和登录教程
Sep 30 PHP
thinkPHP多语言切换设置方法详解
Nov 11 PHP
php 文件下载 出现下载文件内容乱码损坏的解决方法(推荐)
Nov 16 PHP
PHP中in_array的隐式转换的解决方法
Mar 06 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 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
基于php split()函数的用法详解
2013/06/05 PHP
[原创]PHPCMS遭遇会员投稿审核无效的解决方法
2017/01/11 PHP
PHP通过get方法获得form表单数据方法总结
2018/09/12 PHP
javascript的内存管理详解
2013/08/07 Javascript
jquery 删除cookie失效的解决方法
2013/11/12 Javascript
jquery实现增加删除行的方法
2015/02/03 Javascript
js实现图片点击左右轮播
2015/07/08 Javascript
coffeescript使用的方式汇总
2015/08/05 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
解析JavaScript面向对象概念中的Object类型与作用域
2016/05/10 Javascript
js实现div模拟模态对话框展现URL内容
2016/05/27 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
ES6新数据结构Map功能与用法示例
2017/03/31 Javascript
JavaScript比较两个数组的内容是否相同(推荐)
2017/05/02 Javascript
vue父组件给子组件的组件传值provide inject的方法
2019/10/23 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
在js文件中引入(调用)另一个js文件的三种方法
2020/09/11 Javascript
python itchat实现微信自动回复的示例代码
2017/08/14 Python
python学习基础之循环import及import过程
2018/04/22 Python
PyCharm安装第三方库如Requests的图文教程
2018/05/18 Python
Python3解释器知识点总结
2019/02/19 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
银行批评与自我批评
2014/02/10 职场文书
中文专业自荐书
2014/06/29 职场文书
党的群众路线教育实践活动总结报告
2014/07/03 职场文书
品牌推广活动策划方案
2014/08/19 职场文书
销售员工作检讨书(推荐篇)
2014/10/18 职场文书
大学辅导员述职报告
2015/01/10 职场文书
财务负责人岗位职责
2015/02/03 职场文书
人口与计划生育责任书
2015/05/09 职场文书
毕业论文答辩开场白和结束语
2015/05/27 职场文书
企业愿景口号
2015/12/25 职场文书
小数乘法教学反思
2016/02/22 职场文书