我有两个从另一个表a引用的列,我想显示保存在表b中的用户名

dw1jzc5e  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(200)

我知道如何在gridview和detail视图中显示yii框架中的name而不是id。
下面是view.php中的部分代码

<?= DetailView::widget([
    'model' => $model,
    'condensed' => false,
    'hover' => true,

    'attributes' => [
        'user_branch_id',
        //'user_id',
        [
            'attribute'=>'user_id',
           'value' =>$model->user->username,
        ],

        //'branch_id',
        [
            'attribute'=>'branch_id',
           'value' =>$model->branch->branch_name,
        ],
        'status',
       /* [
            'attribute' => 'created_at',
            'format' => [
                'datetime', (isset(Yii::$app->modules['datecontrol']['displaySettings']['datetime']))
                    ? Yii::$app->modules['datecontrol']['displaySettings']['datetime']
                    : 'd-m-Y H:i:s A'
            ],
            'type' => DetailView::INPUT_WIDGET,
            'widgetOptions' => [
                'class' => DateControl::classname(),
                'type' => DateControl::FORMAT_DATETIME
            ]
        ],
        */
     **// 'created_by',
        [
            'attribute'=>'created_by',
           'value' =>$model->user->username,
        ],**
        [
            'attribute' => 'last_update',
            'format' => [
                'datetime', (isset(Yii::$app->modules['datecontrol']['displaySettings']['datetime']))
                    ? Yii::$app->modules['datecontrol']['displaySettings']['datetime']
                    : 'd-m-Y H:i:s A'
            ],
            'type' => DetailView::INPUT_WIDGET,
            'widgetOptions' => [
                'class' => DateControl::classname(),
                'type' => DateControl::FORMAT_DATETIME
            ]
        ],

    ],
    'deleteOptions' => [
        'url' => ['delete', 'id' => $model->user_id],
    ],
    'enableEditMode' => true,
]) ?>

我有以下特点:

1. [
                'attribute'=>'user_id',
               'value' =>$model->user->username,
            ],
 2. [
                'attribute'=>'created_by',
               'value' =>$model->user->username,
            ],

当我在下面的截图上检索时,它显示相同的用户名,而id是不同的。
列创建者:1列用户id:3

btxsgosb

btxsgosb1#

最后我解决了我的问题,在模型中,因为两列是来自同一个表用户的外键,所以模型生成了两个get函数
getuser()
getcreatedby公司
那么我的代码解决方案是 [ 'attribute'=>'user_id', 'value' =>$model->user->username, ], 'attribute'=>'created_by', 'value' =>$model->createdBy->username, ],

相关问题