yii2中的afterAction和return方法?

时间:2015-08-26 07:29:20

标签: php yii2

我的控制器在公共文件夹中有方法测试

  public function actionTest() {
    $s = "sdfs";
    return $s;
}

并为此操作执行afterAction,如:

   public function afterAction($action) {
    if ($action->id == "test") { 
       echo 'here afterActioin';
     }
   }

我从另一个控制器调用测试操作:

public function actionTest3() {
  echo Yii::$app->runAction('travia/test');
 }

问题是当我在浏览器中调用test3时没有任何显示但是如果我对afterAction进行注释,则该方法将返回。 问题在哪里,什么是afterAction的行为,让我的行动回归?

1 个答案:

答案 0 :(得分:4)

Yii2 docs

  

执行操作后立即调用此方法。方法   将触发EVENT_AFTER_ACTION事件。的返回值   方法将用作动作返回值。如果你重写这个   方法,您的代码应如下所示:

public function afterAction($action, $result)
{
    $result = parent::afterAction($action, $result);
    // your custom code here
    return $result;
}