2013-11-22 108 views
0

這是不是定義?!它說dataProvider沒有定義。順便說一句,我沒有讀this。這是否意味着我必須列出每個項目?不遵循它的意思。變量定義時未定義的變量yii

noob問題。抱歉。

public function actionIndex() 
{ 
    $id=1; 

    $dataProvider = new CArrayDataProvider(array(
      array('product_name'=>Product::model()->product_name, 
       'inventory_id'=>Product::model()->inventory_id, 
       'product_price'=>Product::model()->product_price, 
    ), 

    $this->render('index',array(
      'model'=>$this->loadModel($id), 
      'dataProvider'=>$dataProvider, 
      )) 
    ));  

} 

視圖

<div class="widget-body"> 
    <?php $this->widget('bootstrap.widgets.TbDetailView', array(
      'type'=>'striped bordered condensed', 
      'dataProvider'=>$dataProvider, 
      'columns'=>array(
       array('name'=>'product_name', 'header'=>'Product Name'), 
       array('name'=>'inventory_id', 'header'=>'Inventory ID'), 
       array('name'=>'product_price', 'header'=>'Price'), 
       array(
        'class'=>'bootstrap.widgets.TbButtonColumn', 
        'htmlOptions'=>array('style'=>'width: 50px'), 
       ), 
       ), 
    )); ?> 
+0

你應該使用TbGridView爲 – tinybyte

+0

啊,是的,你是對的。謝謝! – jaime

回答

0

TbDetailView應該顯示一個單一的模式,你不需要它的任何數據提供程序。

控制器代碼:

public function actionIndex() 
{ 
    $id=1; 

    $this->render('index', array(
     'model'=>$this->loadModel($id), 
    )); 
} 

查看:

<?php $this->widget('bootstrap.widgets.TbDetailView', array(
    'type'=>'striped bordered condensed', 
    'data'=>$model, 
    'attributes'=>array(
     'product_name', 
     'inventory_id', 
     'product_price', 
    ), 
)); ?> 
+0

非常感謝! – jaime