Commit 2b507253 by Qiang Xue

Merge pull request #2225 from thiagotalma/master

Allow to set an attribute as the value of the cell, unlike the column attribute
parents e6831371 8c49dabb
...@@ -40,7 +40,8 @@ class DataColumn extends Column ...@@ -40,7 +40,8 @@ class DataColumn extends Column
*/ */
public $label; public $label;
/** /**
* @var \Closure an anonymous function that returns the value to be displayed for every data model. * @var string|\Closure the attribute name to be displayed in this column or an anonymous function that returns
* the value to be displayed for every data model.
* The signature of this function is `function ($model, $index, $widget)`. * The signature of this function is `function ($model, $index, $widget)`.
* If this is not set, `$model[$attribute]` will be used to obtain the value. * If this is not set, `$model[$attribute]` will be used to obtain the value.
*/ */
...@@ -140,7 +141,11 @@ class DataColumn extends Column ...@@ -140,7 +141,11 @@ class DataColumn extends Column
protected function renderDataCellContent($model, $key, $index) protected function renderDataCellContent($model, $key, $index)
{ {
if ($this->value !== null) { if ($this->value !== null) {
$value = call_user_func($this->value, $model, $index, $this); if (is_string($this->value)) {
$value = ArrayHelper::getValue($model, $this->value);
} else {
$value = call_user_func($this->value, $model, $index, $this);
}
} elseif ($this->content === null && $this->attribute !== null) { } elseif ($this->content === null && $this->attribute !== null) {
$value = ArrayHelper::getValue($model, $this->attribute); $value = ArrayHelper::getValue($model, $this->attribute);
} else { } else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment