【发布时间】:2017-06-24 14:25:47
【问题描述】:
如果视图文件不存在,我会尝试在 Yii2 中执行类似标准行为的操作。 例如,如果视图“xyz”不存在,则重定向到另一个控制器操作,或者如果我只渲染一个标准视图,比如特殊的 404 页面,会更容易吗?
【问题讨论】:
标签: php yii2 yii2-advanced-app
如果视图文件不存在,我会尝试在 Yii2 中执行类似标准行为的操作。 例如,如果视图“xyz”不存在,则重定向到另一个控制器操作,或者如果我只渲染一个标准视图,比如特殊的 404 页面,会更容易吗?
【问题讨论】:
标签: php yii2 yii2-advanced-app
您可以在您的controller 中执行以下操作:
<?php
namespace app\controllers;
use Yii;
use yii\web\Controller;
use yii\base\ViewNotFoundException;
class ExampleController extends Controller
{
public function actionIndex()
{
// ...
try
{
return $this->render('your-view', [
// ...
]);
}
catch (ViewNotFoundException $e)
{
$this->redirect();
}
}
}
?>
【讨论】:
is_file 来测试view 是否存在。
file_exist 在 Yii2 中查看视图是一个坏主意,需要结合真实路径。你处理逻辑的方式很好。