Yii2 data-*属性不适用于Yii 2中的Html::a()
我有以下资料:Yii2 data-*属性不适用于Yii 2中的Html::a(),yii2,custom-data-attribute,Yii2,Custom Data Attribute,我有以下资料: Html::a('Link', ['some/route'], [ 'class' => 'btn btn-lg btn-primary', // WORKS 'style' => 'padding: 100px;', // WORKS 'data-id' => 123, // DOES NOT WORK 'data' => [ 'id'
Html::a('Link', ['some/route'], [
'class' => 'btn btn-lg btn-primary', // WORKS
'style' => 'padding: 100px;', // WORKS
'data-id' => 123, // DOES NOT WORK
'data' => [
'id' => 123, // DOES NOT WORK
],
]);
根据,在Html::a
helper中指定的data-*
属性都应该在Html输出中呈现各自的属性,但它们没有,我不明白为什么
Yii 2文件还说明了以下内容:
Html::a('Link', ['some/route'], [
'class' => 'btn btn-lg btn-primary', // WORKS
'style' => 'padding: 100px;', // WORKS
'data-id' => 123, // DOES NOT WORK
'data' => [
'id' => 123, // DOES NOT WORK
],
]);
呈现HTML标记属性。
值为布尔类型的属性将被视为布尔属性
属性
值为null的属性将不会被呈现
属性值将使用encode()进行HTML编码
“数据”属性在接收数据时会进行特殊处理
数组值。在这种情况下,数组将被“展开”并显示一个列表
将呈现数据属性。例如,如果“数据”=>
1,'name'=>'yii'],则将呈现:data id=“1”
数据名称=“yii”。此外,“数据”=>[“参数”=>[“id”=>1,
“名称”=>“yii”],“状态”=>“确定”]将呈现为:
数据参数='{“id”:1,“name”:“yii”}'数据状态=“ok”
编辑:我正在尝试在
GridView
列中执行此操作。好的,因为我在GridView
列中使用了Html::a
,所以您必须更改该列的输出格式html
不适用于数据属性,因此您需要切换到raw
:
[
'label' => 'Actions',
'format' => 'raw',
'value' => function($model) {
return Html::a('Link', ['some/route'], [
'class' => 'btn btn-lg btn-primary', // WORKS
'style' => 'padding: 100px;', // WORKS
'data-id' => 123, // WORKS
'data' => [
'id-second' => 123, // WORKS
],
]);
},
]