定义变量时的未定义变量yii

时间:2013-11-22 15:43:33

标签: yii

这未定义吗?!它说dataProvider没有定义。顺便说一下,我确实读过this。这是否意味着我必须在视图中列出每个项目?不遵循它的说法。

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'),
                ),
                ),
    )); ?>

1 个答案:

答案 0 :(得分: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',
    ),
)); ?>