我正在尝试重定向并转到新页面上的特定元素,如下所示:
http://192.168.0.49/x/y/index.php/admin/user/update/id/3#certificate
$this->redirect(array('update', 'id' => $certificate->user_id));
如何做到这一点?
您可以简单地创建不带片段部分的 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']
);
这不能使用 redirect
来完成。解决方法是
$url = Yii::app()->createUrl('update', array('id' => $certificate->user_id, '#' => "certificate"));
$this->redirect($url);