如何更改 yii2 DetailView 小部件中的一个属性显示?

How to change one attribute display in yii2 DetailView widget?

我正在使用 yii\widgets\DetailView 来显示一些像这样的单个对象信息:

<?= DetailView::widget([
    'model' => $model,
    'attributes' => [
        'id',
        'username',
        'email:email',
        [
            'attribute'=>'status',
            'value' => $model->status,
        ],
        'created_at:date',
        'updated_at:date',
    ],
]) ?>

我想用不同的颜色显示状态。所以基本上我想将 .red 的 class 添加到包装 <td> 标签,或者更好地用 <span class="red">{value}</span>

包装状态

GridViewcontentOptions 这真的很容易使用。但是 DetailView 我已经尝试过 optionstemplate,但我无法让它工作。也许我做错了什么,或者我需要使用其他属性。

所以这对我不起作用:

[
    'attribute'=>'status',
    'value' => $model->status,
    'template' => '<tr><th>{label}</th><td><span class="red">{value}</span></td></tr>'
],

有人可以解释一下如何实现吗? 提前致谢。

你应该试试:

[
    'attribute'=>'status',
    'value' => '<span class="red">'.$model->status.'</span>',
    'format' => 'raw',
],

Read more.