Мне нужно применить класс 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, примененный к моему столбцу.
Кто-нибудь знает, почему это происходит?
Спасибо
Я исправил проблему, используя другой синтаксис для столбца CGridView:
array('name'=>'title', 'header'=>'Title', 'htmlOptions'=>array('class'=>'span3')),
Для полноты …
Эта ошибка происходит из-за того, что cssClassExpression
значение должно быть php callable или если это строка 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
, как нашел Марко, и выложил в ответ.