Yii - 如何显示其他属性而不是其ID

时间:2014-03-24 07:11:08

标签: php yii

我在数据库上有相关表格,如下图所示: enter image description here

然后,我有页面查看我的文件,如下图所示: enter image description here

我想显示其用户名,而不是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。:抱歉我的英语不好

2 个答案:

答案 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美元:))