yii2 detailview条件行类

时间:2017-02-21 08:33:33

标签: class if-statement yii2 attributes detailview

我想根据条件更改detailview中单个属性的类:

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

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

我希望这个更改为条件,我尝试了很多不同的方法,例如:

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

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

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

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

所以我没有任何线索,我甚至没有在网上找到任何帮助。你能指点我正确的方向吗?非常感谢!

1 个答案:

答案 0 :(得分:3)

你应该试试:

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

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