我的控制器在公共文件夹中有方法测试
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的行为,让我的行动回归?
答案 0 :(得分:4)
Yii2 docs
执行操作后立即调用此方法。方法 将触发EVENT_AFTER_ACTION事件。的返回值 方法将用作动作返回值。如果你重写这个 方法,您的代码应如下所示:
public function afterAction($action, $result)
{
$result = parent::afterAction($action, $result);
// your custom code here
return $result;
}