Duy Khanh
Duy Khanh

Reputation: 412

How to transmit $data to function with gridview

I have model DangTuyen and function

public function statusImageAccept($status) {
        $str = "";

        if($status == 0)
            $str = Yii::app()->request->baseUrl .  '/images/layout/dangTuyen/tick_icon_OK_black.png'.$status;
        else
            $str = Yii::app()->request->baseUrl . '/images/layout/dangTuyen/tick_icon_green.png'.$status;

        $arr = array(
            'label' => 'Accept',
            'imageUrl' => $str,
            'htmlOption' => array('class' => 'imageIcon'),
            'click' => 'function(){}',
        );

        return $arr;
    }

I use gridview:

Controller::widget('zii.widgets.grid.CGridView', array(

    'id' => 'dang-tuyen-grid',
    'dataProvider' => $model->search(),
    'filter' => $model,
    'columns' => array(
                 'accept' => $model->statusImageAccept('$data->status'),
));

When use $model->statusImageAccept('$data->status') then in function statusImageAccept($status), var $status is string $data->status

How to use $data?

Upvotes: 1

Views: 3743

Answers (1)

rinat.io
rinat.io

Reputation: 3188

Try this way:

Controller::widget('zii.widgets.grid.CGridView', array(
    'id' => 'dang-tuyen-grid',
    'dataProvider' => $model->search(),
    'filter' => $model,
    'columns' => array(
        array(
            'header' => '',
            'type' => 'raw',
            'value' => function($data) {
                $imageUrl = Yii::app()->request->baseUrl .  '/images/layout/dangTuyen/';
                if (0 == $data->status) {
                    $imageUrl .= 'tick_icon_OK_black.png' . $data->status;
                } else {
                    $imageUrl .= 'tick_icon_green.png' . $data->status;
                }
                return CHtml::link(CHtml::image($imageUrl,'Accept'),$url, array(
                    'click' => 'function(){}',
                    'class' => 'imageIcon',
                ));
            }
        )
    )
);

Upvotes: 3

Related Questions