Добавление атрибута ID в CButtonColumn не работает

<?php 
        $this->widget('zii.widgets.grid.CGridView', array(
            'id'=>'material-logs-grid',
            'dataProvider'=>$materialLogSearch->search(),
            'filter'=>$materialLogSearch,
            'ajaxUpdate'=> true,
            'columns'=>array(
                'po_number',
                'qty_ordered',
                array(
                    'name'=>'price',
                    'value'=>'number_format($data->price,2)',
                    'type'=>'raw'
                ),
                array(
                    'name'=>'price',
                    'header'=>'Amount',
                    'value'=>'number_format($data->price*$data->qty_ordered,2)',
                    'type'=>'raw'
                ),
                'date_ordered',
                'note',
                array(
                    'class'=>'CButtonColumn',
                    'template'=>'{update}{delete}',
                    'buttons'=>array(
                        'update'=>array(
                            'options'=>array(
                                'id'=>"myID-$data->idMaterial_logs",
                            ),
                        ),
                    ),
                    'updateButtonUrl'=>"Yii::app()->createUrl(\"materialLogs/update\",array(\"id\"=>\$data->idMaterial_logs,\"pid\"=>\"$project_details->idProject\",\"mid\"=>\$data->idMaterials))",
                    'deleteButtonUrl'=>'Yii::app()->createUrl("/materialLogs/delete",array("id"=>$data->idMaterial_logs))',
                ),
            ),
        ));
        ?>

я получаю эту ошибку

Undefined variable: data 

Ошибка возникает в этой строке:

'id'=>"myID-$data->idMaterial_logs",

Как правильно добавить атрибут ID в CButtonColumn? Я просто хотел, чтобы кнопка «Обновить» имела собственный идентификатор с соответствующим идентификатором из моей базы данных ($data->idMaterials);

Так например: id должен быть "myID-1", 1 там значение idMaterial_logs, поэтому я использую $data->idMaterial_logs, что в данном случае не сработало.

Ваша помощь будет высоко оценена и вознаграждена! Спасибо! :)


person PinoyStackOverflower    schedule 03.01.2013    source источник
comment
каким вы хотите видеть идентификатор? образец?   -  person bool.dev    schedule 03.01.2013
comment
@bool.dev id должен быть myID-1, 1 там значение idMaterial_logs, поэтому я использую $data-›idMaterial_logs, что в данном случае не сработало.   -  person PinoyStackOverflower    schedule 03.01.2013
comment
хорошо, $data недоступно в options для кнопок, возможно, вам придется расширить CButtonColumn   -  person bool.dev    schedule 03.01.2013
comment
Да неужели? есть ли способ без расширения? потому что это очень хлопотная работа с очень простым ожидаемым результатом.   -  person PinoyStackOverflower    schedule 03.01.2013
comment
не то, чтобы я знал, вы можете взглянуть на эту вики-статью для подсказок по реализации аналогичного решения для вашего пользовательского, скажем, класса MButtonColumn. Или может быть этой вики.   -  person bool.dev    schedule 03.01.2013
comment
для чего вам нужно значение идентификатора ссылки? Я думаю, что для этого может быть лучшее решение.   -  person Imre L    schedule 03.01.2013


Ответы (2)


Попробуйте удалить мой ID

'id'=>"myID-$data->idMaterial_logs",  

To be

'id'=>'$data->idMaterial_logs',
person Ahmad Samilo    schedule 03.01.2013
comment
это значение все равно не будет оцениваться. - person Imre L; 03.01.2013

Проблема в том, что вы используете двойные кавычки (") вместо одинарных кавычек ('). Из-за этого файл будет искать $data внутри представления. Там его нет.

Попробуй это

<?php
'id' => '"myID-".$data->idMaterial_logs', 
person MrSoundless    schedule 03.01.2013