我在一个表中有三个外键,我使用 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;
}],
希望这可以帮助您理解。谢谢。