在每个动作开始时调用函数

时间:2014-08-15 19:10:49

标签: php function yii

我正在使用Yii,我有一个控制器,但有一些动作。

除了动作之外,我在控制器中有一个函数,我在每个动作的开头调用它。例如:

<?php

class NameController extends CController
{

    public function actionIndex()
    {
        $this->someFunction();

        // ...
    }

    public function actionYolo()
    {
        $this->someFunction();

        // ...
    }

    // More actions ...

    private function someFunction()
    {
        // ...
    }

}

所以不是在每个动作开始时调用someFunction(),还有其他东西可以自动完成吗?

3 个答案:

答案 0 :(得分:1)

这里有两个选择。

第一个选项,覆盖构造函数:

    public function __construct()
    {
      parent::__construct(); // Call parent constructor
      $this->someFunction(); // Call your function
    }

不要忘记调用父构造函数(CController类的构造函数),然后调用您的操作。

您拥有的第二个选项是覆盖'beforeAction'功能

protected function beforeAction($action)
{
    return true; // True: the action should be executed, false if not.
}

希望它可以帮助你:)。

答案 1 :(得分:0)

答案 2 :(得分:-1)

构造函数可以执行此操作

function __construct() {
    //gets called every time you initiate this object
}