在 yii2 网格视图中,我想显示值来代替外键 ID



请告诉我详细的过程和文件,其中需要进行更改才能显示外键值而不是id,如下面的快照所示:

使用 Ajax Crud 生成器生成的数据网格视图

我的场景是我有两个表 1)屏幕和 2) 子屏幕表, 表屏幕有两个文件屏幕 Id 和屏幕名称 和表子屏幕在子屏幕表的视图中具有子屏幕ID子屏幕名称和Screen_ScreenId(作为外键)我想显示屏幕名称(来自屏幕表)代替Screen_ScreenId(子屏幕表视图)

最后,我找到了一个显示外键值而不是外键 ID 的解决方案: 我发布此解决方案,以便遇到相同问题的其他人可以使用此方法在他们的代码中实现这一点。

在我的例子中,在模型类中需要创建一个关系函数: 我的模型类是子屏幕.php它有一个关系函数

public function getScreenScreen()
{
return $this->hasOne(Screen::className(), ['screenId' => 'Screen_ScreenId']);
}

上述函数是使用 GII 模块生成模型时自动生成的。 我在模型中所做的额外工作是添加了另一个函数代码,如下所示

public function getScreenName()
{
return $this->screenScreen->screenName;
}

-------------------------模型更改到此结束-----------------------------

现在来看视图的_columns.php文件,该文件是使用 Ajax Crud 生成器扩展生成 CRUD 代码时自动生成的。

[
'class'=>'kartikgridDataColumn',
'attribute'=>'Screen_ScreenId',
'value'=>function($model){return $model->getScreenName();},
],

上面代码'value'=>function($model) {return $model->getScreenName();}的最后一行是我添加的,作为额外的行来获取视图中的功能...这使我可以在视图中显示屏幕名称来代替其 ID。 希望这能帮助您解决同样的问题...

最新更新