在CakePHP里,一个controller用于管理应用程序某一方面的逻辑.大多数情况下,controller被用于管理独立model的逻辑,controller的名字总是复数形式.
每个controller可以包含任意数量的方法(action).
一个action,是controller里的一个独立的方法.这个controller.action对象的方法将被Dispatcher类分发执行.
一.Controller变量
$name
使用这个变量来为类设置正确的遵循驼峰命名法(具体见inflector.php).
$users
在controller使用多个model.
$helpers
使用这个变量来让controller在view里面装载helper.HTML helpers是自动被读取的,但是可以用这个变量来指定其他的helper.
$layout
该变量的值为你想为这个controller使用layout的名字.
$autoRender
将这个变量设为false能让action在render之前自动停止.
$beforeFilter
用于想让一些代码在每次action前被调用执行.
将这个变量设置成一个数组,该数组包含了action.
$components
这个变量用来(定义)装载需要的组件.
二.Controoler的主要方法有:
1.beforeFilter在每个controller ction 调用前执行它.
2.afterFilter在每个 controller action 调用后执行.
3.set(string $var, mixed $value);
这个方法是view从controller得到数据的主要方法.(和struts中form.set()类似,但是没有get(),因为它不像struts中那样是对一全bean操作)
这个方法可以传递任何数据,当调用了set()后,相应的变量就可以在view中访问到.当有多个变量需要set的时候,可以结合compact函数来操作,如:
$this->set(compact('a','b','c','d',...));
4.redirect(string $url)通过此方法来通知用户应该继续访问什么地方.
5.flash(string $message,string $url,int $pause);这个方法将在你的flash页面(app/views/layouts/flash.ctp)上显示提示信息[$messate],停顿[$pause]秒,然后重定向用户到指定的url.
6.paginate()当查询多条数据需要分页时的相关函数,对应的变量和set()视图方法与之类似.
7.validateErrors()返回在一次不成功的保存中生成的错误个数.
8.validate根据一个model预定义的有效性规则验证该model的数据.
9.render(string $action, string $layout, string $file);方法是在controller action结束时自动调用的,输出名字为action的view.也可以在controlle逻辑里的任意位置调用这个方法输出视图.
10.beforeRender
在controller逻辑之后,并且在输出视图之前被调用.
其他在Object类中定义在controller里仍然可用的方法:
requestAction(string $url, array $option);
这个方法可以在任意位置调用某个controler的action并且返回rener后的视图.
可以用requestAction从另一个controller action 获取数据,也可以从另一个controller获取整个输出后的视图.一般不建议这样来调用加载controller,因为这样的加载相当与两次的逻辑调用,相关的组件,helper,view都将加载,无疑,这增加了系统的开销.
log(string $message, int $type=LOG_ERROR);
这个方法用来记录web应用程序里发生的不同事件.
postConditions(array $data);
用于将传入的$this->data格式化成model条件数组.
三.Controller参数:
在CakePHP controller里,可以通过$this->params来访问controler的参数.
这个变量用来传递到 controller 的数据,以及提供对当前请求信息的访问.
$this->params最常见的用法是用于访问客户端通过POST或者GET方法提交给controller的参数列表.
$this->data
用来处理来自HTML helper的POST表单数据.
$this->params['form']
来自任何表单的POST数据都存储在这里,包括$_FILES里的信息...
分享到:
相关推荐
cakephp-cakephp-1.3.8-0-g33afe21cakephp-cakephp-1.3.8-0-g33afe21cakephp-cakephp-1.3.8-0-g33afe21
cakephp php 借鉴raid on ralis的php实现,目前最新beta版。
官网下载下来的框架 官网下载下来的框架官网下载下来的框架
CakePHP系列(二)----博客(Blog)案例,一个用cakephp构建比较简单的BLOG的案例。
一个很流行的php框架,cakephp,支持MVC模式
CakePHP 3.0.1 发布,此版本是个 bug 修复版本 CakePHP 3.0.0 稳定版是向后不兼容版本,现在 CakePHP 最低要求: PHP 5.4.16 及其以上 mbstring 扩展 intl 扩展
CakePHP-Audit-Log-Plugin, 记录在CRUD操作期间对对象所做的更改 审计日志插件针对的日志插件 2 1. x. 为每个连接的模型创建一个审计历史。行为跟踪两个级别上的更改。 它获取完全水合对象的快照,在更改之后,更改...
示例CakePHP代码库包含遵循规范和API的真实示例(CRUD,身份验证...cd cakephp-realworld-example-app 使用composer安装所有依赖项 composer install 在config/app.php文件中配置数据库设置(请参阅:数据源/默认) v
wechat-cakephp-sdk wechat-cakephp-sdk 在wechat-php-sdk上修改适配cakephp, controller中有使用范例 项目地址: ###更新 Wechat.php中增加适配CakePHP的缓存配置,也可以根据实际情况在WechatCache中改为其他的缓存...
composer require kaz29/cakephp-open-api-theme-plugin --dev 相依性 设置 将swagger-settings.php复制到配置目录。 在swagger-settings.php描述应用程序swagger-settings.php 。 将"build:swagger" : "build-...
cakephp-2.2.4-0 稳定版框架
cakephp-ex-comment-shell CakePHP Shell 的扩展
CakePHP的SupportTicket插件安装您可以使用将此插件安装到CakePHP应用程序中。 推荐的安装作曲家软件包的方法是: composer require maiconpinto/cakephp-support-ticket-plugin
CakePHP是一个快速开发PHP的开发框架,其中使用了一些常见的设计模式如ActiveRecord,Association Data Mapping,Front Controller以及MVC。其主要目标在于提供一个令任意水平的PHP开发人员都能够快速开发web应用的...
CakePHP的FractalTransformerView插件 这个插件是JsonView一个薄包装器,它允许将用于您的API输出。 什么是? Fractal为复杂数据输出(如在...composer require andrej-griniuk/cakephp-fractal-transformer-view 用法
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;...CakePHP开发的网站源码参考;CakePHP的中文资料很少,大部分是英文的,希望对大家有用,谢谢!
CakePHP-URL-参数-语言使用 URL 中的参数管理 CakePHP 2.x 应用程序的语言安装要将此功能安装到您的 CakePHP 应用程序中,只需将该项目的“app”文件夹复制到一个新的 CakePHP 应用程序中。 如果您的应用程序不是...
CakePHP CakePHP是PHP的快速开发框架,它使用Active Record,关联数据映射,Front Controller和MVC等众所周知的设计模式。 我们的主要目标是提供一个结构化的框架,该框架使所有级别PHP用户都可以快速开发健壮的Web...
PHP快速开发框架,cakephp-3.9.7
打包下载,里面有CakePHP的框架源码,下载后可直接使用,版本是1.1的,稳定版;CakePHP的分页组件源码;...CakePHP开发的网站源码参考;CakePHP的中文资料很少,大部分是英文的,希望对大家有用,谢谢!