很新的yii,我的问题是类似于这个问题How to get foreign key value instead of key in grid view with searching and filtering in yii 2?
我也看过这个wiki https://www.yiiframework.com/wiki/621/filter-sort-by-calculatedrelated-fields-in-gridview-yii-2-0#hh10
我无法弄清楚什么代码在上面的回复中的位置。
我有以下表格
CREATE TABLE `customers` (
`customer_id` int(10) NOT NULL,
`email` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL,
`first_name` varchar(255) DEFAULT NULL,
`middle_name` varchar(255) DEFAULT NULL,
`last_name` varchar(255) DEFAULT NULL,
`country_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
字符串country_id
是外键。
CREATE TABLE `countries` (
`id` int(11) NOT NULL,
`country` varchar(45) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
型
网格视图
<?= GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'email:email',
'first_name',
'middle_name',
'last_name',
'country_id',
[
'class' => ActionColumn::className(),
'urlCreator' => function ($action, Customers $model, $key, $index, $column) {
return Url::toRoute([$action, 'id' => $model->id]);
}
],
],
]); ?>
型
我可以在网格视图中显示国家的id
。如何显示country
而不是id
?
的数据
2条答案
按热度按时间kyxcudwk1#
你必须使用$model示例来获取$model值(我假设你在Customer模型中定义了这个,在Country模型中定义了revers方法,也希望你在创建表时也有FK):Customer:
字符串
然后在网格视图中:
型
z4bn682m2#
更原生的方式是通过点分隔符指定
relation.attribute
。标签和其他数据将从关系中自动检索。假设你已经有了模型的关系
country
。字符串