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守护进程 加linux命令nohup实现任务每秒执行一次
Jul 04 PHP
PHP 无限分类三种方式 非函数的递归调用!
Aug 26 PHP
php图片上传存储源码并且可以预览
Aug 26 PHP
php长字符串定义方法
Jul 12 PHP
PHP实现多图片上传类实例
Jul 26 PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 PHP
php判断文件上传类型及过滤不安全数据的方法
Dec 17 PHP
WordPress中登陆后关闭登陆页面及设置用户不可见栏目
Dec 31 PHP
46 个非常有用的 PHP 代码片段
Feb 16 PHP
PHP实现向关联数组指定的Key之前插入元素的方法
Jun 06 PHP
php session_decode函数用法讲解
May 26 PHP
Yii框架模拟组件调用注入示例
Nov 11 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代码技巧的小结
2013/06/02 PHP
PHP的PSR规范中文版
2013/09/28 PHP
PHP执行SQL文件并将SQL文件导入到数据库
2015/09/17 PHP
php实现的Curl封装类Curl.class.php用法实例分析
2015/09/25 PHP
thinkPHP5使用Rabc实现权限管理
2019/08/28 PHP
PHP哈希表实现算法原理解析
2020/12/11 PHP
jquery随意添加移除html的实现代码
2011/06/21 Javascript
基于jQuery实现左右div自适应高度完全相同的代码
2012/08/09 Javascript
js模仿html5 placeholder适应于不支持的浏览器
2013/01/13 Javascript
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
在JavaScript中构建ArrayList示例代码
2014/09/17 Javascript
解决js页面滚动效果scrollTop在FireFox与Chrome浏览器间的兼容问题的方法
2015/12/03 Javascript
js代码实现点击按钮出现60秒倒计时
2021/01/28 Javascript
js弹出窗口返回值的简单实例
2016/05/28 Javascript
Javascript 实现全屏滚动实例代码
2016/12/31 Javascript
js 判断登录界面的账号密码是否为空
2017/02/08 Javascript
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
解决vue+element 键盘回车事件导致页面刷新的问题
2018/08/25 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
JS实现点击li标签弹出对应的索引功能【案例】
2019/02/18 Javascript
jQuery操作元素追加内容示例
2020/01/10 jQuery
利用Python命令行传递实例化对象的方法
2016/11/02 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
从0开始的Python学习016异常
2019/04/08 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
python pandas.DataFrame.loc函数使用详解
2020/03/26 Python
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
美国专业级皮肤病和spa品质护肤品的高级零售网站:SkinCareRx
2017/02/06 全球购物
Unix/Linux开发面试题
2016/08/16 面试题
宿舍违规用电检讨书
2014/02/16 职场文书
法学专业求职信
2014/07/15 职场文书
三好生演讲稿
2014/09/12 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
班主任高考寄语
2015/02/26 职场文书
销售经理助理岗位职责
2015/04/13 职场文书
vue中三级导航的菜单权限控制
2021/03/31 Vue.js