首页 > 解决方案 > 获取 Yii 1 中发生错误的主 url

问题描述

我们已经为 Yii 1 实现了一个错误处理程序。我们还实现了邮件功能,因为发生任何错误都会向我们发送一封电子邮件,但问题是我们没有获得正在生成错误的当前 URL。就像一个页面控制器/动作可以包含许多图像图标等。因此,如果缺少任何图像,那么我们将获取显示 404 的图像 URL:

$url = Yii::app()->createAbsoluteUrl(Yii::app()->request->url);

但是我们甚至没有得到当前的 URL$error = Yii::app()->errorHandler->error.

所以我们没有得到没有图像的页面。请让我知道是否有任何方法可以获取当前页面 URL,因为我尝试了很多方法,但所有方法都返回丢失的图像 URL,而不是缺少图像的主页 URL。

标签: yiiyii1.x

解决方案


createAbsoluteUrl()期望路由作为第一个参数 - 如果您提供 URL 而不是路由(如在您的代码片段中),它可能会返回随机结果。

如果你想要当前请求的绝对 URL,你可以使用getUrl()和的组合getHostInfo()

$url = Yii::app()->request->getHostInfo() . Yii::app()->request->getUrl();

推荐阅读