yii - использование класса для столбца CGridView показывает предупреждение php

Мне нужно применить класс CSS к одному столбцу CGridView, и я получаю сообщение об ошибке PHP

Это код

$this->widget('zii.widgets.grid.CGridView', array(
            'htmlOptions'=>array('class'=>'table table-striped table-bordered table-condensed'),
            'dataProvider'=>new CArrayDataProvider( getArray() ),
            'template'=>"{items}",
            'columns'=>array(
                array('name'=>'title', 'header'=>'Title', 'cssClassExpression'=>'span3'),
                array('name'=>'url', 'header'=>'url'),
            ),
        ));

И это уведомление, которое я получаю:

PHP notice
Use of undefined constant span3 - assumed 'span3'

Если я отключаю уведомления PHP, я правильно вижу класс css, примененный к моему столбцу.

Кто-нибудь знает, почему это происходит?

Спасибо

2 ответа

Решение

Я исправил проблему, используя другой синтаксис для столбца CGridView:

array('name'=>'title', 'header'=>'Title', 'htmlOptions'=>array('class'=>'span3')),

Для полноты...

Эта ошибка происходит из-за того, что cssClassExpression значение должно быть php вызываемым или если это строка evalпо словам источника evaluateExpression:

    if(is_string($_expression_))
    {
        extract($_data_);
        return eval('return '.$_expression_.';');
    }
    else
    {
        $_data_[]=$this;
        return call_user_func_array($_expression_, $_data_);
    }

Это может быть использовано для условной установки класса CSS. Для простой настройки класса CSS используйте htmlOptions, как нашел Марко, и выложил в ответ.

Другие вопросы по тегам