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

Yii2中给DetailView::widget的url格式属性加target='_blank'

Yii2 DetailView 为url格式字段添加新标签页打开配置

Yii2 内置的url字段格式默认不会给生成的<a>标签添加target="_blank"属性,要实现点击链接在新标签页打开,可根据需求选以下两种方案:

  • 单字段单独配置(推荐,仅影响当前字段,不会改动全局逻辑)
    先在对应视图文件顶部引入Html辅助类:
    use yii\helpers\Html;
    
    把原字段配置修改为如下内容,将format改为raw,手动调用Html类生成带自定义属性的链接:
    [
        'attribute' => 'slug',
        'format' => 'raw',
        'value' => Html::a(
            "https://it-sharks.com/course/$model->slug",
            "https://it-sharks.com/course/$model->slug",
            ['target' => '_blank']
        ),
    ]
    
    这种方式灵活性最高,除了target属性,还可以按需加class、rel等其他自定义属性。
  • 全局配置生效(适合项目内所有format=>url生成的链接都需要新标签页打开的场景)
    在项目配置文件(通常是config/web.php)的components节点下添加formatter组件的配置:
    'components' => [
        // ...其他组件配置
        'formatter' => [
            'urlTarget' => '_blank',
        ],
    ],
    
    配置完成后不需要修改原有DetailView的字段配置,所有调用Formatter的asUrl方法生成的链接都会自动带上target="_blank"属性。

注意:如果只有个别字段需要新窗口打开,不要用全局配置,避免影响其他不需要该逻辑的链接展示。

内容的提问来源于stack exchange,提问作者Ahmed Shaaban Elgendy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:36:14