在视图中显示获取的值

时间:2014-02-25 06:30:03

标签: php yii

我是Yii的新手。请帮我解决这个问题。我从我的数据库中获取了一个数据。我必须在我的视图中显示这些值。我可以在视图中获取数据。但细节视图显示“未设置”。我附上了我的观点。提前谢谢。

我的控制器操作:

public function actionView($id)
    {
            $host_id=$id;
            $model=new NimsoftHostsDetails;
            $detail = NimsoftHostsDetails::model()->findAllByAttributes(array('host_id'=>$id));
            $this->render('view',array(
            'model'=>$model,'host_detail'=>$detail
        ));

    }

我的观点:

<?php
/* @var $this NimsoftHostsDetailsController */
/* @var $model NimsoftHostsDetails */

$this->breadcrumbs=array(
    'Nimsoft Hosts Details'=>array('index'),
    $model->id,
);

$this->menu=array(
    array('label'=>'List NimsoftHostsDetails', 'url'=>array('index')),
    array('label'=>'Create NimsoftHostsDetails', 'url'=>array('create')),
    array('label'=>'Update NimsoftHostsDetails', 'url'=>array('update', 'id'=>$model->id)),
    array('label'=>'Delete NimsoftHostsDetails', 'url'=>'#', 'linkOptions'=>array('submit'=>array('delete','id'=>$model->id),'confirm'=>'Are you sure you want to delete this item?')),
    array('label'=>'Manage NimsoftHostsDetails', 'url'=>array('admin')),
);
?>

<h1>View NimsoftHostsDetails </h1>
<?php print_r($host_detail);?>

<?php $this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
                'id',
        'host_id',
                'host_start_date',
        'host_end_date',
    ),
)); ?>

2 个答案:

答案 0 :(得分:0)

您正在将$model NimsoftHostsDetails的新实例传递到CDetailView,而不是传递$host_detail,即使用数据库中的信息创建的NimsoftHostDetails。另外,您只需要$model的一个实例,因此我建议您使用public function actionView($id) { $host_id=$id; $model = NimsoftHostsDetails::model()->findAllByAttributes(array('host_id'=>$id)); $this->render('view',array('model'=>$model,)); } ,如下所示:

{{1}}

答案 1 :(得分:0)

CDetailView显示特定模型的详细信息。但是应该设置模型属性。这次你将CdetailView传递给一个空模型。你可以写这样的文字

$model = NimsoftHostsDetails::model()->find(array('host_id'=>$id));

find方法只返回一条记录。如果你使用findAllByAttributes,它会返回一个模型数组,但是你只需要显示一个模型,这样就可以使用find方法。 所以将此模型传递给CDatilView。像

 $this->render('view',array(
            'model'=>$model,'host_detail'=>$detail
        ));