0

我需要将一个 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 类。

有谁知道为什么会这样?

谢谢

4

2 回答 2

2

我使用 CGridView 列的不同语法解决了这个问题:

array('name'=>'title', 'header'=>'Title', 'htmlOptions'=>array('class'=>'span3')),
于 2015-01-02T13:53:59.887 回答
0

为了完整...

这个错误来自事实,该cssClassExpression值必须是php 可调用的,或者如果它是字符串,则它是eval'uated,根据来源evaluateExpression

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

这可能用于有条件地设置 css 类。对于 css 类的简单设置,使用htmlOptionsMarco 发现的,并在答案中发布。

于 2015-01-02T18:04:18.430 回答