我在数据库上有相关表格,如下图所示:
然后,我有页面查看我的文件,如下图所示:
我想显示其用户名,而不是ID。 这是我在view / file / _view.php
中的代码<div class="view">
<b><?php echo CHtml::encode($data->getAttributeLabel('id_file')); ?>:</b>
<?php echo CHtml::link(CHtml::encode($data->id_file),array('view','id'=>$data->id_file)); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('nama_file')); ?>:</b>
<?php echo CHtml::encode($data->nama_file); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('deskripsi')); ?>:</b>
<?php echo CHtml::encode($data->deskripsi); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('id_user')); ?>:</b>
<?php echo CHtml::encode($data->id_user); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('id_kategori')); ?>:</b>
<?php echo CHtml::encode($data->id_kategori); ?>
<br />
<b><?php echo CHtml::encode($data->getAttributeLabel('tgl_post')); ?>:</b>
<?php echo CHtml::encode($data->tgl_post); ?>
<br />
<hr />
</div>
FileController.php
public function actionView($id)
{
$this->render('view',array(
'model'=>$this->loadModel($id),
));
}
输出_view.php的index.php
<?php
$this->breadcrumbs=array(
'Files',
);
?>
<h1>Files</h1>
<?php $this->widget('bootstrap.widgets.TbListView',array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
)); ?>
你帮我改变了吗?非常感谢。
P.S。:抱歉我的英语不好
答案 0 :(得分:2)
首先,您需要与模型中的用户表有关系,我假设您已经在上面的图片中有FK。让我们假设关系是“用户”,在用户表中,您要显示的字段是“用户名”。
你应该替换:
php
<?php echo CHtml::encode($data->id_user); ?>
使用:
php
<?php echo CHtml::encode($data->user->username); ?>
答案 1 :(得分:1)
逻辑上我会说:只需使用$ data-&gt;用户名,但由于您没有添加呈现此视图的Controller函数,因此无法知道这是否是您数据的一部分。您可能希望添加该功能以清除事物。
从您的代码中我得到的印象是您没有使用模型,否则您只会拥有一个&#34;用户&#34;实例传递给您可以获取任何属性的视图,包括$ user-&gt;用户名。
基于此代码,您似乎正在为整个框架进行大量工作。只是我的0.02美元:))