`

常用cakephp功能--随手摘记

阅读更多

1.   controller需要调用来自不同model中的数据时,在controller文件中加上

var $users = array(‘Post’, ‘User’);

   

2.   model文件对应的db不存在

var $useTable = false;

 

    同时,改变model对应的表名

var $useTable = ‘some_table’;

   

3.  组件

   (1) 自定义组件:创建app/controllers/components/math.php文件           

<?php
      class MathComponent extends Object {
            function doComplexOperation($amount1, $amount2) {
                return $amount1 + $amount;
            }
       }
?>

 

 

  (2)   在控制器中引用组件

$components = array(‘Math’,‘Session’);

 

  (3)   在组件中使用其他组件

<?php
class CustomComponent extends Object {
    var $name = "Custom"; // 组件名称
    var $components = array( "Existing" ); // 使用的其它组件
    function initialize(&$controller) {
        $this->Existing->foo();
    }
    function bar() {
        // ...
    }
}
?>

 

4. 配置组件(Auth、Cookie、Email等) 在控制器(Controller)中的beforeFilter() 方法中完成。

    组件可以有beforeRender和beforeRedirect回调函数,会分别在页面被输出之前或被重定向之前被调用。(可以设置组件的enable属性为false来禁止函数被调用)

 

5. 保存数据

    (1) save保存格式化后的数据数组:

save(array $data = null, boolean $validate = true, array $fieldList = array())

 

注:当save()被调用时,被传递的第一个参数首先将被cakephp的校验机制进行校验,若验证条件失败,则会导致保存数据失败。

 

  (2) create方法重置模型的状态信息:

create(array $data = array());

 

    如果参数$data(同样应该是前面提到的数组格式)被传递,那么模型的实例将会为保存该数据(可以通过$this->data访问)做好准备。

 

  (3) saveField方法保存单个字段:

 saveField(string $fieldName, string $fieldValue, $validate = false)

 

 

6. Session组件常用于交互会话信息,所包含常用方法及用法如下:

  (1) write($name, $value);

$value 写入到名 $name session 里面。 $name 能使用 分割数 譬如:

 $this->Session->write('Person.eyeColor', 'Green');

 

 

  (2) read($name);

  将 session 中名为 $name 的值读取出来。 $name 能使用“点”分割数组.

 

  (3) delete($name);

  将 session 中名为 $name 的值删除.

 

  (4) $this->Session->destory();

    删除所有的Session保存值。

 

  (5) 用于设置会话变量,可以在视图页面进行输出.

例:$this->Session->setFlash(__('Member\'s registration succeeded', true));

 

 

7. 由控制器向视图页面传值。

  控制器代码:

$username   = $member['Member']['username'];
$name       = $this->data['Member']['name'];
$name_kana  = $this->data['Member']['name_kana'];
$address1   = $this->data['Member']['address1'];
$address2   = $this->data['Member']['address2'];
$tell       = $this->data['Member']['tell'];
$zip        = $this->data['Member']['zip'];
$birth_date = explode('-', $member['Member']['birth_date']);
$age = date('Y') - $birth_date[0];
$sex = $this->Code->field('name', array('Code.cd' => $member['Member']['sex']));

$this->set(compact('username','name','name_kana','address1','address2','tell','zip','age','sex'));

   

  视图页面代码:

<?php echo $username.$name.$name_kana.$address1.$address2.$tell.$zip; ?>

 

8 . 日期选择框的应用。

  (1) 默认日期:2000-1-1

echo $this->Form->year('birth_date', 1930, date('Y'), 2000, array('empty'=>false)).'年'
     .$this->Form->month('birth_date', 1,array('monthNames'=>false,'empty'=>false)).'月'
     .$this->Form->day('birth_date', 1,array('empty'=>false)).'日';

 

注:
    'monthNames' ------ 数字显示,不定义则显示字母类型
    'empty'  ------ 取消首个空白记录

 

 

  (2) 无默认日期

echo $this->Form->year('birth_date', 1930, date('Y'), null, array('empty'=>false)).'年'     
     .$this->Form->month('birth_date',null,array('monthNames'=>false,'empty'=>false)).'月'
     .$this->Form->day('birth_date',null,array('empty'=>false)).'日';

   

  (3) 组合format形式(无默认日期)

echo $this->Form->input('birth_date', array('dateFormat' => 'MDY', 'minYear' => 1930, 'maxYear' => date('Y'), 'separator'=>' '));

   

  (4) 组合format形式(默认日期:2000-1-1)

echo $this->Form->input('birth_date', array('dateFormat' => 'MDY', 'minYear' => 1930, 'maxYear' => date('Y'), 'selected' => '2000-1-1', 'separator'=>' '));

 

 

9 .错误信息的处理

  (1)在app/app_error.php文件中的AppError类中添加一个新方法。

<?php
class AppError extends ErrorHandler {
	function businessError($params) {
	    $this->controller->set('msg', $params['msg']);
	    $this->_outputMessage('business_error');
	}
}
?>

   

  (2) 创建视图文件 app/views/errors/business_error.ctp

<?php
echo $msg;
?>

   

  (3) 在控制器、组件中抛出错误信息

$this->cakeError('businessError', array('msg'=>'URL wrong'));

   

 近期本人开通了微信订阅号“CakePHP学习”,欢迎大家的关注。

 

  • 大小: 31.3 KB
0
1
分享到:
评论

相关推荐

    cakephp-cakephp-1.3.8-0-g33afe21

    标题 "cakephp-cakephp-1.3.8-0-g33afe21" 提供的信息表明,这是一个关于 CakePHP 框架的特定版本,版本号为 1.3.8,Git 修订版号是 0-g33afe21。这通常意味着这是一个开源项目,可能是一个源代码库的归档,或者是...

    cakephp-cakephp-2.0.0-dev-0-gbe96338

    "cakephp-cakephp-2.0.0-dev-0-gbe96338" 是CakePHP框架的一个特定版本,它代表了该框架在2.0大版本中的一个开发分支。此版本在官方网站上可获取,确保了其官方支持和更新,为开发者提供了稳定且安全的开发环境。 ...

    CakePHP3-Proffer, CakePHP 3的上传插件.zip

    CakePHP3-Proffer, CakePHP 3的上传插件 CakePHP3-ProfferCakePHP 3的上传插件。 是什么?,needed upload upload upload upload upload upload upload plugin plugin plugin

    cakephp-cakephp-2.0.0-beta-0-g402934f.zip

    标题中的"cakephp-cakephp-2.0.0-beta-0-g402934f.zip"表明这是一个针对CakePHP 2.0.0 beta版本的压缩包,其中可能包含了框架的核心组件、示例代码以及相关的文档资料。 在描述中提到,CakePHP是“借鉴Raid on ...

    cakephp php-framework

    There are two main ways to get a fresh copy of CakePHP. You can either download an archive copy (zip/tar.gz/tar.bz2) from the main website, or check out the code from the git repository. To download ...

    cakephp-cakephp-1.3.12-32-gb4e3c8a.zip_cakephp 1.3_cakephp1.3_ca

    在CakePHP 1.3 版本中,这一模式的应用使得开发者能够快速构建功能丰富的Web应用。以下是一些关键特性: - **自动路由**:CakePHP通过自动路由机制,将URL映射到相应的控制器和动作,简化了URL管理。 - ** Bake...

    cakephp--使用_CakePHP_的_Session_和_Request_Handler_组件

    ### 使用CakePHP的Session和Request Handler组件 #### Session组件概览 在CakePHP框架中,Session组件被设计用于管理用户的会话数据,确保网站能够识别并处理特定用户的状态。这在用户登录、购物车功能、个性化...

    cakephp-2.2.4-0

    cakephp-2.2.4-0 稳定版框架

    CakePHP插件-将Ajax聊天添加到您的应用程序_PHP_下载.zip

    这个名为"CakePHP插件-将Ajax聊天添加到您的应用程序"的资源是为开发者提供了一种集成实时聊天功能的方式,使他们能够在自己的CakePHP应用中轻松实现用户间的交互。 Ajax(Asynchronous JavaScript and XML)是一种...

    cakephp3-bootstrap-helpers:Bootstrap 3和4的CakePHP 3.x帮助器

    CakePHP 3.x Bootstrap的帮助器 CakePHP 3.x Helpers以@Twitter Boostrap样式生成HTML:可用的Breadcrumbs , Flash , Form , Html , Modal , Navbar , Panel和Paginator帮助器! 如何... ? 安装 如果您想要...

    cakephp-jwt-auth, 使用JSON网络令牌进行身份验证的CakePHP插件.zip

    cakephp-jwt-auth, 使用JSON网络令牌进行身份验证的CakePHP插件 CakePHP认证插件 包含AuthComponent类认证的插件,用于使用 JSON网络令牌进行身份验证。 你可以在这里详细阅读关于JSON网络令牌规范的详细说明。要求...

    cakephp-3-0-1

    CakePHP 3.0.1 发布,此版本是个 bug 修复版本 CakePHP 3.0.0 稳定版是向后不兼容版本,现在 CakePHP 最低要求: PHP 5.4.16 及其以上 mbstring 扩展 intl 扩展

    CakePHP-Audit-Log-Plugin, 记录在CRUD操作期间对对象所做的更改.zip

    CakePHP-Audit-Log-Plugin, 记录在CRUD操作期间对对象所做的更改 审计日志插件针对的日志插件 2 1. x. 为每个连接的模型创建一个审计历史。行为跟踪两个级别上的更改。 它获取完全水合对象的快照,在更改之后,更改...

    codetron-cakephp2-api:api插件的codetron配方

    Codetron-cakephp2-api 功能特点 - **自动路由**:该插件能够自动生成 API 路由,减少手动配置的繁琐工作。 - **JSON 格式支持**:插件默认处理 JSON 数据,方便与移动应用或前后端分离的架构集成。 - **错误处理*...

    cakephp-jwt-auth:一个CakePHP插件,用于使用JSON Web令牌进行身份验证

    composer require admad/cakephp-jwt-auth 用法 使用Cake的控制台加载插件: ./bin/cake plugin load ADmad/JwtAuth 配置: 设置AuthComponent : // In your controller, for e.g. src/Api/AppController.php ...

    cakephp3-soft-delete

    CakePHP的CakeSoftDelete插件 目的 这个Cakephp插件使您可以使您的模型可软删除。 当软删除一个实体时,实际上并没有从数据库中删除它。 而是在记录上设置了deleted时间戳。 要求 该插件是为cakephp 3.x开发的。 ...

    CakePHP-1.2-Cheatsheet

    以下是一些常用的方法: 1. **bind(params)**: 绑定模型到其他模型。 2. **create([data])**: 创建一个用于保存的新记录,可选传入初始数据。 3. **delete([id,cascade])**: 删除指定ID的记录,可选参数cascade用于...

    cakephp2.0-metronic-theme

    cakephp2.0-metronic-theme 如何设置应用程序? 使用以下命令在apache webroot目录中克隆代码。 git 克隆 创建数据库并设置连接 Config/database.php 运行以下命令以使用 composer &gt; composer install 安装 ...

    cakephp-realworld-example-app

    示例CakePHP代码库包含遵循规范和API的真实示例(CRUD,身份验证...cd cakephp-realworld-example-app 使用composer安装所有依赖项 composer install 在config/app.php文件中配置数据库设置(请参阅:数据源/默认) v

    cakephp3-uploadBehavior

    cakephp3-uploadBehavior 这是一个简单的行为,禁止附加到 cakePHP3 模型/表。 它将获取上传的文件并将它们复制到配置的上传文件夹。 使用行为 要使用该行为,您必须将其添加到模型中。 由于 cakePHP3 中的 Models ...

Global site tag (gtag.js) - Google Analytics