0

我正在尝试重定向并转到新页面上的特定元素,如下所示:

http://192.168.0.49/x/y/index.php/admin/user/update/id/3#certificate

$this->redirect(array('update', 'id' => $certificate->user_id));

如何才能做到这一点?

4

2 回答 2

2

您可以简单地创建没有片段部分的 url,然后手动附加它:

$url = Yii::app()->createUrl('update', ['id' => $certificate->user_id]);
$url .= "#certificate";

$this->redirect($url);

此代码的工作方式在阅读代码时立即显而易见。除此之外,还有 Yii 特有的解决方案:(CUrlManager负责构建 URL 的组件)也可以识别#为参数。所以你可以写:

$url = Yii::app()->createUrl(
    'update',
    ['id' => $certificate->user_id, '#' => 'certificate']
);
于 2013-09-26T08:40:04.120 回答
1

这不能使用redirect. 解决方法是

$url = Yii::app()->createUrl('update', array('id' => $certificate->user_id, '#' => "certificate"));
$this->redirect($url);
于 2013-09-26T08:28:14.610 回答