我正在使用Yii,我有一个控制器,但有一些动作。
除了动作之外,我在控制器中有一个函数,我在每个动作的开头调用它。例如:
<?php
class NameController extends CController
{
public function actionIndex()
{
$this->someFunction();
// ...
}
public function actionYolo()
{
$this->someFunction();
// ...
}
// More actions ...
private function someFunction()
{
// ...
}
}
所以不是在每个动作开始时调用someFunction(),还有其他东西可以自动完成吗?
答案 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)
如何使用beforeAction
?
http://www.yiiframework.com/doc/api/1.1/CController#beforeAction-detail
答案 2 :(得分:-1)
构造函数可以执行此操作
function __construct() {
//gets called every time you initiate this object
}