在x-editable或TbEditableColumn中将行id作为参数传递以更新特定记录

时间:2014-08-26 01:39:41

标签: php yii

我正在尝试使用TbEditableColumn / X-Editable在CGridView中进行内联编辑。我正在尝试使用通常的$ data变量通过直观的“$ data-> id”获取行id,以传递动态生成的url中的行ID,以便在控制器的更新操作中,我知道哪个记录要更新。

然而,$ data-> id在创建URL时无效。有趣的是,在项目上应用“可编辑”属性时,可以访问相同的$ data变量。见下文。

我不想使用JS:函数方式来获取元素的id并将其作为参数传递给ajax调用。这似乎并不优雅。

                array(
                            'class' => 'editable.EditableColumn',
                            'name' => 'mrp',
                            'headerHtmlOptions' => array('style' => 'width:200px'),
                            'editable' => array(
                                    'type' => 'text',
                                    'apply' => '$data->id>10605',
                                    'url' => '/product/changeMRP/id/$data->id',
                            ),
                    ),

在上面的代码中,此行有效

'apply' => '$data->id>10605' 

但这条线不是

'url' => '/product/changeMRP/id/$data->id',

为什么会这样?我怎样才能解决我的问题?

我关注了这个问题: How can update db values using x-editable EditableColumn?但它没有帮助

1 个答案:

答案 0 :(得分:0)

您可以使用createUrl()创建URL并在id中传递array。喜欢这个

'url' => "Yii::app()->createUrl('product/changeMRP', array('id'=>'$data->id'))",

希望它能解决你的问题。