How to get a calculated value on GridView

Hi guys,

my intention is to get a calculated value in GridView.I am using dataProvider. Following code will give me no value back.I tested query with phpmyadmin. It’s correct.

i’ll get values back with phpmyadmin…

What is the right way to get values back?

GridView:





   	[

            'attribute' => $anrede,

            'label' => Yii::t('app', 'arbeitslos(Tage)'),

            'format' => 'html',

            'vAlign' => 'middle',

            'value' => function($model) {

                $value = $model::arbeitslos_seit();

                return $value;

            }

        ],



Model(not searchModel!)





    public static function arbeitslos_seit() {

        /* $sql = 'SELECT DATEDIFF(Now(),arbeitsuchend_seit) AS arbeitslos_in_Tagen FROM bewerber'; */


        $sql = 'SELECT DATEDIFF(Now(),arbeitsuchend_seit) FROM bewerber';

        $arbeitslos = Bewerber::findBySql($sql)->one();

        foreach ($arbeitslos as $ausgabe) {

            $return_value = "<div id=''>" . $ausgabe . "</div>";

        }

        return $return_value;

    }



Got it by my own and yahoo

This will give me back same values as phpmyadmin





        [

            'attribute' => $anrede,

            'label' => Yii::t('app', 'arbeitslos(Tage)'),

            'format' => 'html',

            'vAlign' => 'middle',

            'value' => function($model) {

                $expression = new yii\db\Expression('NOW()');

                $now = (new \yii\db\Query)->select($expression)->scalar();  // SELECT NOW();

                if ($model->arbeitsuchend_seit) {

                    $diff = strtotime($now) - strtotime($model->arbeitsuchend_seit);

                    $hours = floor($diff / (60 * 60));

                    $days = floor($hours / 24);

                } else {

                    $days = NULL;

                }

                return $days;

            }

        ],