【问题标题】:Yii2 - redirect if view file not existYii2 - 如果视图文件不存在则重定向
【发布时间】:2017-06-24 14:25:47
【问题描述】:

如果视图文件不存在,我会尝试在 Yii2 中执行类似标准行为的操作。 例如,如果视图“xyz”不存在,则重定向到另一个控制器操作,或者如果我只渲染一个标准视图,比如特殊的 404 页面,会更容易吗?

【问题讨论】:

    标签: php yii2 yii2-advanced-app


    【解决方案1】:

    您可以在您的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();
            }
        }
    
    }
    
    ?>
    

    【讨论】:

    • 干得好! Yii2是否有任何视图文件存在方法?谢谢。
    • @NickTsai 没有。在源码中,Yii2首先通过findViewFile获取视图路径,然后renderFile。实际上,Yii2 使用is_file 来测试view 是否存在。
    • 谢谢,@Paul。然后我认为使用file_exist 在 Yii2 中查看视图是一个坏主意,需要结合真实路径。你处理逻辑的方式很好。
    猜你喜欢
    • 2011-09-12
    • 1970-01-01
    • 1970-01-01
    • 2015-09-23
    • 2011-12-25
    • 2022-11-10
    • 2021-06-24
    • 1970-01-01
    • 2016-02-28
    相关资源
    最近更新 更多