我是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',
),
)); ?>
答案 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
));