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 获取MSN好友列表的代码(2009-05-14测试通过)
Sep 09 PHP
超级简单的php+mysql留言本源码
Nov 11 PHP
PHP删除数组中的特定元素的代码
Jun 28 PHP
php去除HTML标签实例
Nov 06 PHP
迅速确定php多维数组的深度的方法
Jan 07 PHP
linux下编译安装memcached服务
Aug 03 PHP
php删除左端与右端空格的方法
Nov 29 PHP
PHP curl伪造IP地址和header信息代码实例
Apr 27 PHP
Yii2中hasOne、hasMany及多对多关联查询的用法详解
Feb 15 PHP
详解PHP神奇又有用的Trait
Mar 25 PHP
ThinkPHP框架整合微信支付之Native 扫码支付模式二图文详解
Apr 09 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
Oct 15 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+MYSQL的文章管理系统(二)
2006/10/09 PHP
珊瑚虫IP库浅析
2007/02/15 PHP
有关PHP中MVC的开发经验分享
2012/05/17 PHP
php 批量生成html,txt文件的实现代码
2013/06/26 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
PHP实现用户异地登录提醒功能的方法【基于thinkPHP框架】
2018/03/15 PHP
Nigma vs Alliance BO5 第一场2.14
2021/03/10 DOTA
jQuery 顺便学习下CSS选择器 奇偶匹配nth-child(even)
2010/05/24 Javascript
javascript unicode与GBK2312(中文)编码转换方法
2013/11/14 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
简单谈谈javascript中的变量、作用域和内存问题
2015/08/30 Javascript
JS操作xml对象转换为Json对象示例
2017/03/25 Javascript
读懂CommonJS的模块加载
2019/04/19 Javascript
Vue+ElementUI table实现表格分页
2019/12/14 Javascript
js函数和this用法实例分析
2020/03/13 Javascript
ant-design表单处理和常用方法及自定义验证操作
2020/10/27 Javascript
Python实现句子翻译功能
2017/11/14 Python
python实现ID3决策树算法
2017/12/20 Python
python生成tensorflow输入输出的图像格式的方法
2018/02/12 Python
使用Python读取安卓手机的屏幕分辨率方法
2018/03/31 Python
用Python编写一个高效的端口扫描器的方法
2018/12/20 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
Python I/O与进程的详细讲解
2019/03/08 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
python字典的遍历3种方法详解
2019/08/10 Python
Python爬取智联招聘数据分析师岗位相关信息的方法
2019/08/13 Python
Python解压 rar、zip、tar文件的方法
2019/11/19 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
浅谈python 类方法/静态方法
2020/09/18 Python
详解webapp页面滚动卡顿的解决办法
2018/12/26 HTML / CSS
html5唤醒APP小记
2019/03/27 HTML / CSS
安全生产管理合理化建议书
2014/03/12 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
优质护理心得体会
2016/01/22 职场文书
微信小程序实现录音Record功能
2021/05/09 Javascript