我在名为假期的表格中使用Gii制作了一个模型及其CRUD。它的index.php有一个GridView,有两列名为第1列和第3列。然后我添加了一个名为人的列,该列来自名为人的表。
问题是列人不可排序。
所以我有这些表格( column1_id 和 person_id 是其表格的主键):
vacations: column1_id, column3.
persons: person_id, person_name, column1_id.
也许我必须在VacationsSearch文件中添加一些内容。
答案 0 :(得分:1)
基本上你应该扩展搜索功能,以便为相关列添加查询和排序
$dataProvider->setSort([
.....
'your_related_column' => [
'asc' => ['related_table.your_related_column' => SORT_ASC],
'desc' => ['related_table.your_related_column' => SORT_DESC],
'label' => 'Your Label'
]
]
]);
.....
// filter by country name
$query->joinWith(['yor_relation' => function ($q) {
$q->where('related_table.your_related_column LIKE "%' . $this->yourRelatedAttribute . '%"');
}]);
要获得更广泛的解释,您可以看到此示例的方案2 http://www.yiiframework.com/wiki/621/filter-sort-by-calculated-related-fields-in-gridview-yii-2-0/