【问题标题】:How to redirect to Invalid page if wrong URL or wrong controller/action in Yii?如果 Yii 中的 URL 错误或控制器/操作错误,如何重定向到无效页面?
【发布时间】:2014-03-17 09:40:32
【问题描述】:

如果用户尝试在 URL 中键入控制器中不存在的操作,我如何重定向或呈现我的网站中的无效页面。我想要一个通用代码,因为我在网站上有很多控制器,这样如果用户输入错误或不存在的操作将重定向到页面说“您迷路了或找不到请求页面”?

我正在使用 Yii 框架。

【问题讨论】:

标签: php yii


【解决方案1】:

当涉及到控制器和动作时,Yii 会自动执行此操作 - 如果您的 URL 管理器配置设置正确。

在 config/main.php 的 urlmanager 部分:

'urlManager'=>array(
    'showScriptName' => false,
    'urlFormat'=>'path',
    'useStrictParsing'=>true,
    'rules'=>array(
         // Remove all the default Yii rules

         // Add your own specific rules
    ),
),

这里有几件事:

  • 我假设您正在使用来自 Tutorial 的干净 URL
  • useStrictParsing 防止 Yii 在尝试匹配 URL 时过于慷慨
  • 删除 Yii 的默认通用控制器:动作路由规则意味着您没有指定的方法无法进入您的应用程序。

如果你说的是在控制器动作中抛出错误,你可以使用 Yii 的 CException 类来做到这一点。

public function actionCheckOk()
{
    if($ok)
    {
        $this->render('ok');
    }
    else
    {
        throw new CHttpException(404, 'Page not found');
    }
}

【讨论】:

  • 谢谢詹姆斯的回答,这对我解决我的问题很有帮助
  • 没问题。很高兴它有帮助!是否足以让您将答案标记为已接受?您需要更多信息吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-21
  • 1970-01-01
  • 1970-01-01
  • 2012-10-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多