Yii2 Kartik GridView 属性中的处理函数

问题描述 投票:0回答:1

在我的 Kartik GridView 视图文件中,我尝试处理 ExpandRowColumn 的

detailRowCssClass
属性的函数。无论设置如何(例如应用空函数或返回直接字符串),结果始终相同并返回一个对象。

'detailRowCssClass' => function($data){
    if($data->status == 0)
    {
        return GridView::TYPE_INFO;
    }
    elseif($data->status == 1)
    {
        return GridView::TYPE_WARNING;
    }
    elseif($data->status == 2)
    {
        return GridView::TYPE_SUCCESS;
    }
},         

返回一个类

[object Object]

有谁知道解决方法,或者我从根本上缺少什么,因为它不返回字符串?谢谢!

php yii2 kartik-v
1个回答
0
投票

问题是,kartik\grid\ExpandRowColumn类的detailRowCssClass是一个简单字符串而不是闭包。源文件中的相应部分

vendor/kartik-v/yii2-grid/src/ExpandRowColumn.php
:

class ExpandRowColumn extends DataColumn
{
    ...
    /**
     * @var string the CSS class for the detail content table row.
     */
    public $detailRowCssClass;
    ...
    /**
     * @inheritdoc
     * @throws InvalidConfigException
     */
    public function init()
    {
        if (!isset($this->detailRowCssClass)) {
            $this->detailRowCssClass = $this->grid->getCssClass(GridView::BS_TABLE_INFO);
        }
    ...
        $clientOptions = Json::encode(
            [
                'gridId' => $this->grid->options['id'],
                'hiddenFromExport' => $this->hiddenFromExport,
                'detailUrl' => empty($this->detailUrl) ? '' : $this->detailUrl,
                'onDetailLoaded' => $onDetailLoaded,
                'expandIcon' => $this->expandIcon,
                'collapseIcon' => $this->collapseIcon,
                'expandTitle' => $this->expandTitle,
                'collapseTitle' => $this->collapseTitle,
                'expandAllTitle' => $this->expandAllTitle,
                'collapseAllTitle' => $this->collapseAllTitle,
                'rowCssClass' => $this->detailRowCssClass,
                'animationDuration' => $this->detailAnimationDuration,
                'expandOneOnly' => $this->expandOneOnly,
                'enableRowClick' => $this->enableRowClick,
                'enableCache' => $this->enableCache,
                'rowClickExcludedTags' => array_map('strtoupper', $this->rowClickExcludedTags),
                'collapseAll' => false,
                'expandAll' => false,
                'extraData' => $this->extraData,
            ]
        );
    ...
    }
© www.soinside.com 2019 - 2024. All rights reserved.