Yii 控制器学习——内容摘自http://www.yiichina.com/中文官网

创建操作

~操作方法必须是以action开头的公有方法

~操作方法的返回值会作为响应数据发送给终端用户

操作ID
~操作通常是用来执行资源的特定操作,因此, 操作ID通常为动词,如 view update
~操作ID应仅包含 英文小写字母 数字 下划线 中横杠 ,操作ID中的中横杠用来分隔单词
~可通过两种方式创建操作ID, 内联操作 独立操作
~内联操作容易创建,在 无需重用 的情况下优先使用; 独立操作相反,主要 用于多个控制器重用 , 或重构为扩展

操作方法

内联操作方法的名字是根据操作ID遵循如下规则衍生:

  • 将每个单词的第一个字母转为大写;
  • 去掉中横杠;
  • 增加action前缀.

例如index 转成 actionIndexhello-world 转成 actionHelloWorld

attention:方法名字大小写敏感,而且方法必须是为公有方法,否则不能定义为内联操作。


独立操作如果你计划在不同地方重用相同的操作, 或者你想重新分配一个操作,需要考虑定义它为独立操作

独立操作通过继承yii\base\Action或它的子类来定义

通过控制器中覆盖yii\base\Controller::actions()方法在 action map 中申明
创建一个独立操作类,需要继承 yii\base\Action 或它的 子类 ,并实现公有的名称为 run() 的方法,  run()  方法的角色和操作方法类似

操作结果

操作方法或独立操作的run()方法的返回值非常重要, 它表示对应操作结果。

返回值可作为响应对象,作为响应发送给终端用户


操作参数

对于yii\web\Application网页应用, 每个操作参数的值从$_GET中获得,参数名作为键

如果想让操作参数接收数组值,需要指定$id为array,如下所示:

public function actionView(array $id, $version = null)
{
    // ...
}

修改默认操作

默认操作默认为 index,如果想修改默认操作, 只需简单地在控制器类中覆盖这个属性,如下所示:

namespace app\controllers;

use yii\web\Controller;

class SiteController extends Controller
{
    public $defaultAction = 'home';

    public function actionHome()
    {
        return $this->render('home');
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值