2012-12-18 49 views
4

我想讓使用Yiibooster的TbEditableColumn工作。我按照這裏http://yii-booster.clevertech.biz/components.html#editable如何在Yiibooster中使用配置TbEditableColumn?

我對線

'editable' => array(
'url' => $this->createUrl('site/editable'), 
'placement' => 'right', 
'inputclass' => 'span3' 
) 

這是否意味着我應該已經有一個actionEditable()方法,或者需要創建一個糊塗的指示?

我嘗試使用我的圖像控制器中預先存在的actionUpdate($ id)方法。

'editable' => array(
'url' => $this->createUrl('image/update', array('id'=>'1')), 
'placement' => 'right', 
'inputclass' => 'span3' 

ATM它更新前端,但當我刷新頁面時,它不保留其值。

我在這個例子中硬編碼了id。

如果我需要創建一個actionEditable方法,有沒有人這樣做,可以發佈如何?

親切的問候:)

回答

2

你說得很對。該方法非常簡單,因爲有一個現有的組件。將下面的代碼到你的控制器,並呼籲image/editableSaver

public function actionEditableSaver() 
{ 
    Yii::import('path.to.editable.EditableSaver'); 
    $es = new EditableSaver('MyModel'); 
    $es->update(); 
} 
+0

由於我的小部件名稱中有前綴,因此不得不進行一些更改(請參見下面的註釋)。但你的建議很有魅力! – johnsnails

3

對我下面的工作。

在我的admin.php的觀點

我有這個代碼:

'editable' => array(
    'url' => $this->createUrl('image/editableSaver'), 
    'placement' => 'right', 
    'inputclass' => 'span3' 
), 

在我相應的控制器我有這個(按@ schmunk的)意見。有輕微的變化。

public function actionEditableSaver() 
{ 
    Yii::import('bootstrap.widgets.TbEditableSaver'); 
    $es = new TbEditableSaver('Image'); 
    $es->update(); 
} 

所以我需要改變

public function actionEditableSaver() 
{ 
    Yii::import('path.to.editable.EditableSaver'); 
    $es = new EditableSaver('MyModel'); 
    $es->update(); 
} 

public function actionEditableSaver() 
{ 
    Yii::import('bootstrap.widgets.TbEditableSaver'); 
    $es = new TbEditableSaver('Image'); 
    $es->update(); 
} 

進行相當於Tb的前綴在我的窗口小部件的名稱(從http://yii-booster.clevertech.biz/getting-started.html下載)

我希望這幫助別人。

相關問題