From 632a537ab83ae953dc200dd389367e2c026e57cb Mon Sep 17 00:00:00 2001 From: Thiago Talma Date: Thu, 30 Jan 2014 15:51:09 -0200 Subject: [PATCH 1/5] Allow to set an attribute as the value of the cell, unlike the column attribute. --- framework/grid/DataColumn.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/framework/grid/DataColumn.php b/framework/grid/DataColumn.php index 3677c516aa..b2ffea3c96 100644 --- a/framework/grid/DataColumn.php +++ b/framework/grid/DataColumn.php @@ -140,7 +140,11 @@ class DataColumn extends Column protected function renderDataCellContent($model, $key, $index) { if ($this->value !== null) { - $value = call_user_func($this->value, $model, $index, $this); + if (is_callable($this->value)) { + $value = call_user_func($this->value, $model, $index, $this); + } else { + $value = ArrayHelper::getValue($model, $this->value); + } } elseif ($this->content === null && $this->attribute !== null) { $value = ArrayHelper::getValue($model, $this->attribute); } else { From a35fcbbf92dfbfe7f06f0da6b01435e0d5ed0d6f Mon Sep 17 00:00:00 2001 From: Thiago Talma Date: Thu, 30 Jan 2014 15:56:44 -0200 Subject: [PATCH 2/5] Adjust tab as space --- framework/grid/DataColumn.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/framework/grid/DataColumn.php b/framework/grid/DataColumn.php index b2ffea3c96..7011e69a28 100644 --- a/framework/grid/DataColumn.php +++ b/framework/grid/DataColumn.php @@ -140,11 +140,11 @@ class DataColumn extends Column protected function renderDataCellContent($model, $key, $index) { if ($this->value !== null) { - if (is_callable($this->value)) { - $value = call_user_func($this->value, $model, $index, $this); - } else { - $value = ArrayHelper::getValue($model, $this->value); - } + if (is_callable($this->value)) { + $value = call_user_func($this->value, $model, $index, $this); + } else { + $value = ArrayHelper::getValue($model, $this->value); + } } elseif ($this->content === null && $this->attribute !== null) { $value = ArrayHelper::getValue($model, $this->attribute); } else { From f906b3a10b57f10efa8742ca2fc08e0ff8d381b7 Mon Sep 17 00:00:00 2001 From: Thiago Talma Date: Thu, 30 Jan 2014 16:02:24 -0200 Subject: [PATCH 3/5] Adjust doc --- framework/grid/DataColumn.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/framework/grid/DataColumn.php b/framework/grid/DataColumn.php index 7011e69a28..5c9500efcf 100644 --- a/framework/grid/DataColumn.php +++ b/framework/grid/DataColumn.php @@ -40,7 +40,8 @@ class DataColumn extends Column */ 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)`. * If this is not set, `$model[$attribute]` will be used to obtain the value. */ From 5a2323346d2f0790ebfa0df896e4309b27cf64d3 Mon Sep 17 00:00:00 2001 From: Thiago Talma Date: Thu, 30 Jan 2014 17:01:26 -0200 Subject: [PATCH 4/5] Test if value is instance of \Closure --- framework/grid/DataColumn.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/framework/grid/DataColumn.php b/framework/grid/DataColumn.php index 5c9500efcf..4f710b4ff7 100644 --- a/framework/grid/DataColumn.php +++ b/framework/grid/DataColumn.php @@ -141,11 +141,11 @@ class DataColumn extends Column protected function renderDataCellContent($model, $key, $index) { if ($this->value !== null) { - if (is_callable($this->value)) { - $value = call_user_func($this->value, $model, $index, $this); - } else { - $value = ArrayHelper::getValue($model, $this->value); - } + if ($this->value instanceof \Closure) { + $value = call_user_func($this->value, $model, $index, $this); + } else { + $value = ArrayHelper::getValue($model, $this->value); + } } elseif ($this->content === null && $this->attribute !== null) { $value = ArrayHelper::getValue($model, $this->attribute); } else { From 8c49dabb1bd1bcb3151266277f62bcc8ef3c21d0 Mon Sep 17 00:00:00 2001 From: Thiago Talma Date: Thu, 30 Jan 2014 17:04:16 -0200 Subject: [PATCH 5/5] Change condition --- framework/grid/DataColumn.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/framework/grid/DataColumn.php b/framework/grid/DataColumn.php index 4f710b4ff7..0f53359edb 100644 --- a/framework/grid/DataColumn.php +++ b/framework/grid/DataColumn.php @@ -141,10 +141,10 @@ class DataColumn extends Column protected function renderDataCellContent($model, $key, $index) { if ($this->value !== null) { - if ($this->value instanceof \Closure) { - $value = call_user_func($this->value, $model, $index, $this); - } else { + 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) { $value = ArrayHelper::getValue($model, $this->attribute);