2017-04-09 72 views
0

请告诉我详细过程和文件,其中需要做出更改以显示外键值代替id的位置,如下面的截图所示:在yii2 gridview中,我想显示值代替外键ID

Data Gridview generated using Ajax Crud Generator

我的情况是,我有两个表1)屏幕和2)子屏幕表格中, 表屏幕上有个域中screenId和屏幕名 和表子屏幕具有subscreenId subscreenName和Screen_ScreenId(作为外键)在SubScreen Table的视图我想显示ScreenName(来自屏幕表格),代替SubScreen Table View的Screen_ScreenId

回答

-1

最后,我找到了一个解决方案,以显示地方外键ID的外键值:我张贴这种解决方案,以便其他人谁面临着同样的问题,可以使用此方法在自己的代码来实现这个..

在模型类的关系功能需要在我的情况下创建: 我的模型类是Subscreen.php这有关系函数使用GII模块生成的模型时产生

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

上述功能自动。 我做了额外这里在模型中增加了一个功能代码如下所示

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

------------------------ - 型号更改在这里结束-----------------------------

现在来到视图的_columns.php文件这是在产生使用Ajax的发电机界面污物扩展CRUD码自动生成..

...

[ 
    'class'=>'\kartik\grid\DataColumn', 
    'attribute'=>'Screen_ScreenId', 
    'value'=>function($model){return $model->getScreenName();}, 

], 

...

上面的代码中的最后一行代码'value'=> function($ model){return $ model-> getScreenName();},作为额外的行添加以获得功能视图...这使得我可以在视图中显示ScreenName来代替他们的Id。 希望这会帮助你解决同样的问题...