1

ウィジェットの出力を Yii の CJuiTabs のコンテンツとして渡すにはどうすればよいですか?

ここで私が試したコードでエラーが発生しました:

$this->widget('zii.widgets.jui.CJuiTabs',array(
'tabs'=>array(
    'Tab1'=> array('content' => $this->widget('zii.widgets.CListView', array(
        'dataProvider'=>$vulnerdataProvider,
        'itemView'=>'_latest_vulner' )),
        'id' => 'tab1'),
    'tab2'=>array('content'=>'Content for tab 2', 'id'=>'tab2'),
),
// additional javascript options for the tabs plugin
'options'=>array(
    'collapsible'=>true,
),

));

次のエラーが発生します。

クラス CListView のオブジェクトを文字列に変換できませんでした

編集: Stu の回答と同様に、私はこれを見つけました: http://yiibook.blogspot.nl/2012/09/handle-cjuitabs-in-yii.html

4

3 に答える 3

2

ええ、コンテンツは文字列を期待し、ウィジェットは文字列を返しません。このブログの一部をここで見つけました:http://mrhandscode.blogspot.com/2012/03/insert-widget-to-another-widget-in-yii.html

所有者は、出力バッファリングを使用して1つのウィジェットの出力を収集し、それを2番目のウィジェットに挿入するという、この問題を回避する非常に革新的な方法を見つけました。

あなたはこのようなものでそれを達成することができるかもしれません:

ob_start();
$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$vulnerdataProvider,
    'itemView'=>'_latest_vulner'
));
$tab1Content=ob_get_contents();
ob_end_clean();

$this->widget('zii.widgets.jui.CJuiTabs',array(
    'tabs'=>array(
        'Tab1'=> array('content' => $tab1Content,'id' => 'tab1'),
        'tab2'=>array('content'=>'Content for tab 2', 'id'=>'tab2'),
    ),
    // additional javascript options for the tabs plugin
    'options'=>array(
        'collapsible'=>true,
    ),
));

私はテストしていません、そしていじくり回す必要があるかもしれません!

于 2013-01-04T18:24:51.483 に答える
0

以下は大丈夫です。

'Tab1'=> array('content' => $this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$vulnerdataProvider,
    'itemView'=>'_latest_vulner' ), true)
于 2014-02-15T03:48:06.787 に答える