yii2 detailview 条件行 class

yii2 detailview conditional row class

我想根据条件更改 class 详细视图中的一个属性:

如果我不想让它成为有条件的,它会像这样工作:

[
    'attribute' => 'ungueltig',
    'format' => 'boolean',
    'contentOptions' => [
        'class' => 'danger',
        ]
],

我想把这个改成有条件的,我试过很多不同的方法,例如:

[
    'attribute' => 'ungueltig',
    'format' => 'boolean',
    'contentOptions' => function ($model) {
        if ($model->ungueltig == 1) {
            return ['class' => 'danger'];
        } else {
            return '';
        }
    },
],

(我认为这是最合乎逻辑的解决方案,但没有任何反应,因此页面加载正常但属性没有 class 危险,没有错误消息)

[
    'attribute' => 'ungueltig',
    'format' => 'boolean',
    'contentOptions' => ['class' => function ($model) {
        if ($model->ungueltig == 1) {
            return 'danger';
        } else {
            return '';
        }
    },]
],

= 错误消息:htmlspecialchars() 期望参数 1 为字符串,给定的对象

所以我一点头绪都没有,我什至没有在网上找到任何帮助。你能给我指出正确的方向吗?非常感谢!

你应该试试:

'contentOptions' => [
    'class' => ($model->ungueltig == 1) ? 'danger' : '',
],

DetailView只显示一个模型,这里不需要任何功能。