Yii2 Gridview逐行css表达式

Yii2 Gridview逐行css表达式,gridview,yii2,Gridview,Yii2,执行逐行css表达式的正确方法是什么。在Yii中,1是rowCssClass。我不知道如何用Yii2实现这一点。我尝试过这个,但不确定我的思路是否正确: 'rowOptions' => function($model, $key, $index, $grid){ if($data->option->correct_answer == 1){ return ['class' => 'danger'];

执行逐行css表达式的正确方法是什么。在Yii中,1是rowCssClass。我不知道如何用Yii2实现这一点。我尝试过这个,但不确定我的思路是否正确:

        'rowOptions' => function($model, $key, $index, $grid){
        if($data->option->correct_answer == 1){

            return ['class' => 'danger'];
        }
    },

但是,在处理数据提供程序时,我不确定从何处获取函数的参数。

使用$model而不是$data

在我的变体中:

   'rowOptions' => function ($model, $index, $widget, $grid){
      return ['style'=>'color:'.$model->status->color.'; background-color:'.$model->status->background_color.';'];
    },
就你而言:

   'rowOptions' => function ($model, $index, $widget, $grid){

      if($model->option->correct_answer == 1){
        return ['class' => 'danger'];
      }else{
        return [];
      }
    },
你也可以试试这个

为行添加类名

'rowOptions' => ['class'=>'rowData'],
然后通过css对其进行操作

<?php

$css = <<< CSS
//example
.rowData:hover{

}
CSS;
$this->registerCss($css);
?>


@user1852788我似乎得到了array_merge():参数#2不是数组。看起来你应该返回数组,所以我编辑了答案-在“if”语句中添加了else部分,返回值为空数组。同样,堆栈是this
foreach($this->columns as$I=>$column){if(is_string($column)){$column=$this->createDataColumn($column);}其他{$column=Yii::createObject(数组_merge(['class'=>$this->dataColumnClass?:DataColumn::className(),'grid'=>$this,],$column));}
我想我们讨论的是行…和行的类。上一条评论中的代码是关于列的。显示小部件调用的全部代码。User1852788它是关于行的。代码是堆栈错误。顺便说一句,这是一个框架如何阻止您的工作的极好示例。手动执行此操作需要5秒钟,试图找出如何执行此操作(以一种非常复杂的方式处理Yii)花了我2个小时。只是说:(@Sliq可能更清楚,我会同意。不过我记得我确实犯了最初的错误。不过,希望这个答案/问题能节省人们的时间。