【问题标题】:How to redirect if controller wasn't found? (cakephp)如果找不到控制器如何重定向? (蛋糕PHP)
【发布时间】:2012-02-06 21:14:57
【问题描述】:

这是我的路线文件。如果找不到控制器,如何重定向到 array('controller' => 'pages', 'action' => 'display', 'home')?

Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
Router::connect('/login', array("controller"=>"user","action"=>"login"));
Router::connect('/settings', array("controller"=>"user","action"=>"settings"));
Router::connect('/logout', array("controller"=>"user","action"=>"logout"));
Router::connect('/video', array("controller"=>"video","action"=>"index"));
Router::connect('/video/page/*', array("controller"=>"video","action"=>"page"));
Router::connect('/video/*', array("controller"=>"video","action"=>"view")); 
Router::connect('/upcoming', array("controller"=>"user","action"=>"upcoming"));

【问题讨论】:

标签: php cakephp redirect


【解决方案1】:

这很简单。在您的 /app 目录中创建一个 app_error.php 文件,(就像您为 app_model.phpapp_controller.php 所做的那样)

完成后,输入以下内容:

<?php
class AppError extends ErrorHandler {


    function missingController($params) {
        extract($params, EXTR_OVERWRITE);

        $this->controller->redirect('/');
    }    


}

现在,这应该可以解决您的问题。如果您需要调用组件和 beforeFilters/Renders,您可以从构造函数中调用它们。

【讨论】:

    【解决方案2】:

    您应该创建一个自定义异常处理程序,将用户重定向回主页。请参阅有关此主题的documentation

    可能是这样的(未经测试,但只是为了让您知道从这里到哪里去):

    class AppErrorHandler {
        public static function handleException($error) {
            if ($error instanceof MissingControllerException) {
                // Redirect home, $this->redirect will probably not work,
                // since the Error Handler doesn't extend the AppController.
                header('Location: /');
                exit;
            }
        }
    }
    

    【讨论】:

      【解决方案3】:

      你需要的是 here 解释清楚并且工作得很好>希望这会对你有所帮助。

      HERE

      【讨论】:

        猜你喜欢
        • 2019-12-05
        • 1970-01-01
        • 1970-01-01
        • 2018-10-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-02
        相关资源
        最近更新 更多