2017-02-10 82 views
-2

我有两个表1.名称: - 编号,名称,标签(文本类型)。 2.标签: - 标识,名称。 在yii2中,我有名称mdoule的网格视图。我想为标签字段添加搜索和排序过滤器。Yii2排序上的关系(多值列)

例如:

表名称:1, “汤姆”, “1,2,3”

表标签:1, “标签A” 2 “标签B”, 3, “标签C”,

回答

0

在搜索模式搜索方法插入此

$dataProvider->sort->attributes['label'] = [ 
    // The tables are the ones our relation are configured to 
    'asc' => ['label.name' => SORT_ASC], 
    'desc' => ['label.name' => SORT_DESC], 
]; 

这列添加到您的网格视图

[ 
    'filter' => \yii\helpers\ArrayHelper::map(\common\models\Label::find()->select(['id', 'name'])->asArray()->all(), 'id', 'name'), 
    'attribute' => 'label_id', 
    'value'  => 'label.name', 
    'label'  => Yii::t('backend', 'Label'), 
], 

诗:你可以阅读更多有关此here

+0

Thnks但在我的问题,我有一个叫做“标签”(类型=文本”)字段。在此字段中存储标签(多于一个)。在标签标签中只有id和名称字段在那里。 –

+0

我真的不明白你的问题。你想按照标签的数量对名称进行分类,或者想要显示一个包含属于名称的所有标签的列? –