TbButtonColumn $数据错误

时间:2013-01-24 19:32:13

标签: php yii

我正在$data->id上使用TbButtonColumn,但我收到错误"Trying to get property of non-object"TbGridView正常运行! 我做错了什么?

View.php:

<?php  $this->widget('bootstrap.widgets.TbGridView',array(
    'type'=>'striped bordered condensed',
    'id'=>'profiles-grid',
    'dataProvider'=>$dataProvider,
    'columns'=>array(
        'id',
        array(
            'class'=>'bootstrap.widgets.TbButtonColumn',
            'template'=>'{create}',
            'buttons'=>array
            (
                'create' => array(
                    'label'=>'Criar Evento',
                    'icon'=>'plus',
                    'url'=>'Yii::app()->controller->createUrl("events/create", array("id"=>$data->id))', // Problem here on $data->id
                ),
            ),
        ),
    ),
)); ?>

2 个答案:

答案 0 :(得分:2)

设置按钮的网址对我有用:

'url'=>'$this->grid->controller->createUrl("update", array(
            "id"=>$data->primaryKey))',

答案 1 :(得分:1)

您获得的错误是由$data不是对象造成的。您不能在任何其他变量类型上使用属性访问运算符->

从您的问题中不清楚$data在哪里被赋值,或者该值应该是什么。您可以使用is_object函数确保变量包含对象:

if (!is_object($data))
  die('There seems to be a problem with the data');

这将告诉您$data不是对象,从而防止出错。但是,我怀疑潜在的问题是你期望填充$data变量的任何机制是否失败,或者没有以你期望的方式工作。

您可以使用var_dump调试变量并在过程中检查其类型:

var_dump($data);

...这会让你更好地了解$data实际上是什么 - 它不是一个对象,这是肯定的!

<强>文档