Данные в дополнительной колонке в CGridView

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
benge
Сообщения: 12
Зарегистрирован: 2013.12.06, 09:24

Данные в дополнительной колонке в CGridView

Сообщение benge » 2014.03.12, 18:13

Доброго всем времени суток.

У меня есть view, в которой работает виджет CGridView:

Код: Выделить всё

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'reviews-grid',
    'ajaxUpdate'=>false,
    'dataProvider' => $dataProvider,      //данные передаются посредством CSqlDataProvider
    'columns' => array(
        array(
            'name' => 'id',
            'value' => '$data["id"]',        //здесь значение $data["id"] присваивается как надо
        ),
        
        ...

        array(
            'class' => 'ControlColumn',
//проблема в том что мне нужно чтобы свойству $thereview было присвоено значение $data["id"], 
//но он мне просто рендерит строку $data["id"]
            'thereview' => '$data["id"]',              
        ),
    ),
));
 
Класс, который наследуется от CGridColumn:

Код: Выделить всё

class ControlColumn extends CGridColumn
{
    public $thereview;

    protected function renderDataCellContent()
    {
        echo $this->thereview;
    }
}
Подскажите пожалуйста что можно сделать?
К сожалению я на бронепоезде

Странник
Сообщения: 274
Зарегистрирован: 2013.04.08, 10:35
Откуда: Нижний Новгород

Re: Данные в дополнительной колонке в CGridView

Сообщение Странник » 2014.03.12, 20:08

'value' => '$data->id'

Аватара пользователя
benge
Сообщения: 12
Зарегистрирован: 2013.12.06, 09:24

Re: Данные в дополнительной колонке в CGridView

Сообщение benge » 2014.03.12, 20:58

Не могли бы вы по подробнее описать куда это надо вписывать?
К сожалению я на бронепоезде

Joseph Jevelin
Сообщения: 339
Зарегистрирован: 2012.01.06, 22:07

Re: Данные в дополнительной колонке в CGridView

Сообщение Joseph Jevelin » 2014.03.12, 21:34

В тот код, который в первом сообщении.

Аватара пользователя
benge
Сообщения: 12
Зарегистрирован: 2013.12.06, 09:24

Re: Данные в дополнительной колонке в CGridView

Сообщение benge » 2014.03.12, 21:48

Напишите пожалуйста код, я не понимаю
К сожалению я на бронепоезде

lancedevnull
Сообщения: 1268
Зарегистрирован: 2013.07.17, 17:37

Re: Данные в дополнительной колонке в CGridView

Сообщение lancedevnull » 2014.03.12, 21:58

value сделай анонимкой, у тебя сейчас exoression не обрабатывается, в
array(
'class' => 'ControlColumn',
//проблема в том что мне нужно чтобы свойству $thereview было присвоено значение $data["id"],
//но он мне просто рендерит строку $data["id"]
'thereview' => '$data["id"]',
),

Аватара пользователя
benge
Сообщения: 12
Зарегистрирован: 2013.12.06, 09:24

Re: Данные в дополнительной колонке в CGridView

Сообщение benge » 2014.03.13, 11:52

lancedevnull писал(а):value сделай анонимкой, у тебя сейчас exoression не обрабатывается, в
array(
'class' => 'ControlColumn',
//проблема в том что мне нужно чтобы свойству $thereview было присвоено значение $data["id"],
//но он мне просто рендерит строку $data["id"]
'thereview' => '$data["id"]',
),
Я понял по вашим словам что нужно в значение thereview писать анонимную функцию, наподобие такого:

Код: Выделить всё

'thereview' => function()
     {
          //а здесь что писать?
     }
Плюс, как потом обратиться к тому что будет передано, из функции renderDataCellContent() ? Я совсем новичек в yii, да и php если честно не очень хорошо знаю, объясните пожалуйста подробнее если не трудно:)
К сожалению я на бронепоезде

Аватара пользователя
ElisDN
Сообщения: 5358
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Данные в дополнительной колонке в CGridView

Сообщение ElisDN » 2014.03.14, 10:44

Подсмотрите в классе СDataColumn:

Код: Выделить всё

protected function renderDataCellContent($row, $data)
{
    $value = $this->evaluateExpression($this->thereview, array('data' => $data, 'row' => $row));
    echo $value === null ? $this->grid->nullDisplay : $value;
} 

Аватара пользователя
benge
Сообщения: 12
Зарегистрирован: 2013.12.06, 09:24

Re: Данные в дополнительной колонке в CGridView

Сообщение benge » 2014.03.26, 21:01

Спасибо
К сожалению я на бронепоезде

Ответить