cakephp菜鸟笔记4

简单讲完model之后便是controller的使用,如果在/app/下创建了app_controller的话,所有创建的controller都会继承你所创建的controller,一般controller的名字都是名词复数_controller.php,在代码里面便是名词复数Controller的双驼峰写法。如果controller由bake生成的话,便会生成4个方法,查删改插都有。
controller类成员有:$name(名词复数,说明这个controller使用哪个model,自动使用名词单数那个model)
$uses如果这个属性显式使用了后,还想使用这个controller默认使用的model就必须要显式声明。
$components 这个属性使用其他组件,方便使用。
$this->pageTitle,在layout中使用这个可以为不同controller调用的view使用title变量。
<?php //echo $title_for_layout; 
//$this->pageTitle="title";
?>
 

$this->layout,一般都默认使用default.ctp,如果不从cake/lib里面复制到app/view/layout目录下的话是没有 default.ctp这个文件,复制后系统自动会调用app/view/layout/default.ctp。
class ProductsController extends AppController {

 var $name = 'Products';
 var $uses = array('Product','Taxonomy');
 function beforeFilter() {
  $this->Auth->allow('view');
  //  parent::beforeFilter();
 }
 function index() {
  $this->Product->recursive = 0;
  $this->set('products', $this->paginate());
 }

说完这些简单的属性,controller每个方法都会调用与其名字相同的view,如果是viewCompany方法=》view_company.ctp
add、edit的时候,页面会产生$this->data,会自动与页面的form关联,要想更改form提交的数据,使用debug方法传入$this->data参数进行详细了解使用。
其他模型数据保存与插入bake生成的代码都有示例,可以自行参考了解,也可以只保存某个model里面的其中一个字段field,方法为saveField()。
保存后可以使用$this->Session->setFlash()方法来从页面提示处理信息,字符串一般使用__()(ps:两个下划线的方法,是国际化方法来的)。
$this->redirect(array('action' => 'index'))可以跳转到某个方法,如果在该方法是在同一个controller里面,可以省略controller。$this->redirect($this->referer());//自动跳转到回引用页面,写登陆方法的使用这个非常好。
controller方法里面的参数,一般从router.php里面设置,如果默认设置,就自动从方法gj/users(控制器)/view(方法)/arg1/arg2后的按顺序读取arg1、arg2进入方法的参数,最好每个参数在参数列表里都赋值null,以免报错。
beforeFilter这个方法继承app_controller,如果没有显式定义,就不用了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值