Yii2 网格视图小部件如何显示值代替 ID(外键)



我在一个表中有三个外键,我使用 kartik gridview 小部件显示它们的记录,我想显示值来代替默认显示的外键,任何人都可以帮助我在哪里进行更改以获得这个。我已经使用Ajax Crud Generator来生成表单和视图。

我猜你想要这个,我不知道 kartik 网格视图小部件,但这是普通的网格视图

https://github.com/yiisoft/yii2/issues/1215

在具有外键的模型中,定义规则中的关系:

public function rules()
{
    return [
           [['added_by'], 'exist', 'skipOnError' => true, 'targetClass' => User::className(), 'targetAttribute' => ['added_by' => 'id']],

    ];
}

在模型本身中添加一个方法:

public function getAddedUser()
{
    return $this->hasOne(User::className(), ['id' => 'added_by']);
}

现在进入网格视图,将自定义属性定义为:

['attribute' => 'vendor_id', 'format'=>'raw', 'value' => function($model){
                                return $model->addedUser->company_name;
                        }],

希望这可以帮助您理解。谢谢。

最新更新