请告诉我详细信息流程和文件,其中需要进行更改以显示外键值代替id,如下面的快照所示:
Data Gridview generated using Ajax Crud Generator
我的场景是我有两个表1)屏幕和2)SubScreen表, 表格屏幕有两个文件screenId和screenName 并且表SubScreen在SubScreen视图中有subscreenId subscreenName和Screen_ScreenId(作为外键)我希望显示screenName(来自Screen表)而不是Screen_ScreenId(SubScreen表视图)
答案 0 :(得分:-1)
最后我找到了一个解决方案来显示外键值代替外键id:我发布了这个解决方案,以便面临同样问题的其他人可以使用这种方法在他们的代码中实现它。
在模型类中,需要在我的情况下创建关系函数: 我的模型类是Subscreen.php,它有一个关系函数
public function getScreenScreen()
{
return $this->hasOne(Screen::className(), ['screenId' => 'Screen_ScreenId']);
}
使用gii模块生成模型时自动生成上述函数。 我在模型中做了多少额外的功能代码,如下所示
public function getScreenName()
{
return $this->screenScreen->screenName;
}
-------------------------模型更改在此结束----------------- ------------
现在来到视图的_columns.php文件,该文件是在使用Ajax Crud Generator扩展生成CRUD代码时自动生成的。
...
[
'class'=>'\kartik\grid\DataColumn',
'attribute'=>'Screen_ScreenId',
'value'=>function($model){return $model->getScreenName();},
],
...
上面代码中的最后一行'value'=>函数($ model){return $ model-> getScreenName();},由我添加为额外的一行,以便在视图中获得功能。 ..这使我可以在视图中显示ScreenName来代替他们的Id。 希望这能帮助您解决同样的问题...