PHP Yii框架自定义动作(Action)用法详解
2015-10-20 15:14
766 查看
PHP Yii框架的动作(Action)有两种方式:
写在控制器类中的动作方法:动作函数必须以action为前缀,比如actionLogin();
自定义动作类:继承父类CAction;
写在控制器类的动作函数这种方式比较简单,此处仅举一个例子,并不做详述:
自定义动作需要三步:
编写自定义动作类,继承CAction类;
编写run函数,实现动作逻辑;
在控制器中注册自定义动作。
编写自定义动作类,编写run方法。
自定义动作类中定义了run方法,并且传入了两个参数。
注意,方法的名字必须是run,千万别写错了,因为,在父类CAction中,已经明确定义了该方法名称:
自定义动作类写好后,下一步,就是要在控制类中注册该动作了。
上一步,我们编写的run方法,需要传入两个参数,所以在控制类中,注册动作的时候,要同时传入参数。
在控制器中注册动作,需要复写父类CController的actions方法。
写在控制器类中的动作方法:动作函数必须以action为前缀,比如actionLogin();
自定义动作类:继承父类CAction;
写在控制器类的动作函数这种方式比较简单,此处仅举一个例子,并不做详述:
class UserController extends CController{ public function actionLogin() { } }
自定义动作需要三步:
编写自定义动作类,继承CAction类;
编写run函数,实现动作逻辑;
在控制器中注册自定义动作。
编写自定义动作类,编写run方法。
<?php /** * 自定义Action * @author wangyalsong * */ class SayAction extends CAction{ public function run($classname, $age=20){ echo "SayAction,run:Hello, I`m ".$this->name.'My class is '.$classname." 班. age is {$age}<br>"; } }
自定义动作类中定义了run方法,并且传入了两个参数。
注意,方法的名字必须是run,千万别写错了,因为,在父类CAction中,已经明确定义了该方法名称:
/** * Runs the action with the supplied request parameters. * This method is internally called by {@link CController::runAction()}. * @param array $params the request parameters (name=>value) * @return boolean whether the request parameters are valid * @since 1.1.7 */ public function runWithParams($params) { $method=new ReflectionMethod($this, 'run'); if($method->getNumberOfParameters()>0) return $this->runWithParamsInternal($this, $method, $params); else return $this->run(); }
自定义动作类写好后,下一步,就是要在控制类中注册该动作了。
上一步,我们编写的run方法,需要传入两个参数,所以在控制类中,注册动作的时候,要同时传入参数。
在控制器中注册动作,需要复写父类CController的actions方法。
class UserController extends CController{ public function actionLogin() { } public function actions(){ return array( 'say'=>array( 'class'=>'application.controllers.user.SayAction',//动作类目录别名 'name'=>'wangyuchun',//传入参数 ), ); } }
相关文章推荐
- php小数点后取两位的几种实现方法
- php获取上传文件扩展名的方法
- php 二维数组排序方法
- php 静态类与非静态类
- php生成验证码函数
- 初次使用yii
- _splitpath和_mekepath的用法
- php中静态变量和静态方法
- PHP正则表达式
- Yii 2.0: yii2-highcharts-widget创建饼状图
- PHP页面跳转
- php文件上传你必须知道的几点
- yii2 restful api搭建 实例
- PHP Yii框架过滤器用法详解
- 如何开启PHP的PDO扩展模块
- PHP判断上传文件类型的解决办法
- Thinkphp——关于前台显示栏目和限制显示对应栏目下的商品或文章列表的数目
- PHP设计模式——装饰器模式(decorator)
- OTP原理及实现
- php解决key没有双引号的问题