public function run()
{
$viewName = $this->resolveViewName();
$this->controller->actionParams[$this->viewParam] = Yii::$app->request->get($this->viewParam);
$controllerLayout = null;
if ($this->layout !== null) {
$controllerLayout = $this->controller->layout;
$this->controller->layout = $this->layout;
}
try {
$output = $this->render($viewName);
if ($controllerLayout) {
$this->controller->layout = $controllerLayout;
}
} catch (ViewNotFoundException $e) {
if ($controllerLayout) {
$this->controller->layout = $controllerLayout;
}
if (YII_DEBUG) {
throw new NotFoundHttpException($e->getMessage());
} else {
throw new NotFoundHttpException(Yii::t('yii', 'The requested view "{name}" was not found.', ['name' => $viewName]));
}
}
return $output;
}