【问题标题】:Processing function in Yii2 Kartik GridView propertyYii2 Kartik GridView 属性中的处理函数
【发布时间】:2020-12-03 05:09:54
【问题描述】:

在我的 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]的类

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

【问题讨论】:

    标签: yii2 kartik-v


    【解决方案1】:

    问题是,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,
                ]
            );
        ...
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多