2015-08-26 45 views
0

我有共同夾控制器,其具有方法測試afterAction和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的行爲不會讓我的行爲返回什麼?

回答

4

Yii2文檔

調用此方法時執行的動作之後。方法 將觸發EVENT_AFTER_ACTION事件。方法 的返回值將用作操作返回值。如果重寫此 方法,你的代碼應該如下所示:

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

這是正確的!這是確定 – mohsen

+0

但是如果我想在後臺我該怎麼辦,我的行動電話後運行的方法? – mohsen

+1

我的意思是被調用的動作顯示我的顯示頁面,我想在我的行動背景中運行一個方法! – mohsen