2017-06-12 38 views
1

對於某些控制器,我需要不同的ErrorActions。有沒有辦法在Yii2中的控制器中設置ErrorAction?Yii2:自定義錯誤動作

對於默認ErrorAction在配置

'components' => [ 
'errorHandler' => [ 
    'errorAction' => 'site/error' 
], 

回答

2

您可以在siteControlleractionError修改此規定的大多數控制器。 如果需要,您可以將此操作重定向到其他操作。

+0

爲什麼從一個動作重定向到另一個動作,如果您可以確定方法actions()中的錯誤, – Sersh

1

您必須修改控制器中的erroHandler組件。您可以在控制器的init函數中將其更改爲以下代碼。不要忘記在控制器中定義自定義錯誤操作。

class YourController extends Controller { 

    public function init() {   
     parent::init(); 
     Yii::app()->errorHandler->errorAction='route/error'; 
    } 

    public function actionError(){ 
     // error action code goes here 
    } 

}