2013-11-22 80 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