Yii2中给DetailView::widget的url格式属性加target='_blank'
Yii2 DetailView 为url格式字段添加新标签页打开配置
Yii2 内置的url字段格式默认不会给生成的<a>标签添加target="_blank"属性,要实现点击链接在新标签页打开,可根据需求选以下两种方案:
- 单字段单独配置(推荐,仅影响当前字段,不会改动全局逻辑)
先在对应视图文件顶部引入Html辅助类:
把原字段配置修改为如下内容,将use yii\helpers\Html;format改为raw,手动调用Html类生成带自定义属性的链接:
这种方式灵活性最高,除了target属性,还可以按需加class、rel等其他自定义属性。[ 'attribute' => 'slug', 'format' => 'raw', 'value' => Html::a( "https://it-sharks.com/course/$model->slug", "https://it-sharks.com/course/$model->slug", ['target' => '_blank'] ), ] - 全局配置生效(适合项目内所有
format=>url生成的链接都需要新标签页打开的场景)
在项目配置文件(通常是config/web.php)的components节点下添加formatter组件的配置:
配置完成后不需要修改原有DetailView的字段配置,所有调用Formatter的'components' => [ // ...其他组件配置 'formatter' => [ 'urlTarget' => '_blank', ], ],asUrl方法生成的链接都会自动带上target="_blank"属性。
注意:如果只有个别字段需要新窗口打开,不要用全局配置,避免影响其他不需要该逻辑的链接展示。
内容的提问来源于stack exchange,提问作者Ahmed Shaaban Elgendy
相关产品推荐
相关产品推荐

