【问题标题】:Adding an ID attribute in the CButtonColumn not working在 CButtonColumn 中添加 ID 属性不起作用
【发布时间】:2013-01-03 03:31:10
【问题描述】:
<?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",

在 CButtonColumn 上添加 ID 属性的正确方法是什么?我只是希望更新按钮有一个自定义 ID,其对应的 ID 来自我的数据库($data-&gt;idMaterials);

例如: id 应该是“myID-1”,1 是 idMaterial_logs 的值,这就是我使用 $data->idMaterial_logs 的原因,在这种情况下它不起作用。

您的帮助将不胜感激和奖励!谢谢! :)

【问题讨论】:

  • 您希望 id 是什么样的?样品?
  • @bool.dev id应该是“myID-1”,1是idMaterial_logs的值,这就是我使用$data->idMaterial_logs的原因,在这种情况下它不起作用.
  • 好吧 $dataoptions 中不可用的按钮,您可能需要扩展 CButtonColumn
  • 哦,真的吗?有没有不扩展的方法?因为对于一个非常简单的预期结果,这是一项非常麻烦的工作。
  • 我不知道,您可以查看this wiki article 以获取有关为您的自定义实施类似解决方案的提示,例如 MButtonColumn 类。或者可能是this wiki's 方式。

标签: php yii cgridview cbuttoncolumn


【解决方案1】:

尝试删除我的ID

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

成为

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

【讨论】:

  • 该值无论如何都不会被评估。
【解决方案2】:

问题在于您使用双引号 (") 而不是单引号 (') 因此,该文件将在视图中查找 $data。那里不存在。

试试这个

<?php
'id' => '"myID-".$data->idMaterial_logs', 

【讨论】:

    猜你喜欢
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    • 2014-09-14
    • 2013-11-01
    • 1970-01-01
    相关资源
    最近更新 更多