1

YiiBooster 4.0.1 中的 TbEditedableColumn 有问题

看法:

$this->widget(
'application.extensions.booster.widgets.TbGridView',
array(
    'type' => 'striped bordered',
    'dataProvider' => new CActiveDataProvider('Stats'),
    'columns' => array(
        'pid',
        array(
            'class' => 'application.extensions.booster.widgets.TbEditableColumn',
            'name' => 'login',
            'sortable' => false,
            'editable' => array(
                //'model'  => $model,
                //'attribute' => 'login',
                'url' => $this->createUrl('stats/editableSaver'),
                'placement' => 'right',
                'inputclass' => 'span3'
            )
        )
    ),
)

);

控制器:

public function actionEditableSaver()
        {
            Yii::import('application.extensions.booster.components.TbEditableSaver');
            $es = new TbEditableSaver('Stats');
            $es->update();
        }

当我尝试保存编辑的字段时,我得到了这个异常:应该定义属性“属性”。

$es->attributes 为空。

如何解决?谢谢。

4

1 回答 1

0

源代码中,TbEditableSaver::update()从 post 或 get 参数中获取属性name

$this->attribute = yii::app()->request->getParam('name');
$this->value = yii::app()->request->getParam('value');

//checking params
if (empty($this->attribute)) {
    throw new CException(Yii::t('TbEditableSaver.editable', 'Property "attribute" should be defined.'));
}

为了在更新请求中发送此参数,需要在editable数组中定义它。要解决这个问题:

'class' => 'application.extensions.booster.widgets.TbEditableColumn',
    'name' => 'login',
    'sortable' => false,
    'editable' => array(
        'name' => 'login',
        'url' => $this->createUrl('stats/editableSaver'),
        'placement' => 'right',
        'inputclass' => 'span3'
    )
于 2014-07-01T16:17:08.500 回答