You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel迁移至Yii2:如何判断当前路由并动态显示文本/链接

Yii2实现路由判断的导航高亮

要在Yii2里实现和Laravel一样的效果,你可以通过以下两种方式判断当前路由:

方式一:判断控制器和动作ID

直接获取当前控制器和动作的ID进行判断,适合没有自定义路由规则的场景:

<?php 
$isContactPage = Yii::$app->controller->id === 'contact' && Yii::$app->controller->action->id === 'index';
?>
<?php if ($isContactPage): ?>
    <span class="contact-link active">contact</span>
<?php else: ?>
    <a href="<?= Url::to(['/contact/index']) ?>" class="contact-link">contact</a>
<?php endif; ?>

方式二:判断请求路由

如果你在config/web.php的urlManager里配置了自定义路由(比如把/contact映射到contact/index),可以直接对比请求的路由:

<?php if (Yii::$app->requestedRoute === 'contact/index'): ?>
    <span class="contact-link active">contact</span>
<?php else: ?>
    <a href="<?= Url::to(['/contact']) ?>" class="contact-link">contact</a>
<?php endif; ?>

说明

  • Yii::$app->controller->id:获取当前控制器的标识(你的ContactController对应contact)
  • Yii::$app->controller->action->id:获取当前执行的动作标识(你的actionIndex对应index)
  • Yii::$app->requestedRoute:获取当前请求对应的完整路由(格式为控制器ID/动作ID)

内容的提问来源于stack exchange,提问作者Hector

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:31:21