2017-02-10 2 views
-2

Ich habe zwei Tabellen 1. Name: - ID, Name, Label (Texttyp). 2. Etiketten: - ID, Name. In yii2 habe ich eine Gitteransicht für name mdoule. Ich möchte Such- und Sortierfilter für das Beschriftungsfeld hinzufügen.Yii2 Sortierung nach Beziehung (mehrwertige Spalte)

ex:

Tabellenname: 1, "Tom", "1,2,3"

Tabelle Label: 1, "label A" 2, "label B" 3, „label C“,

Antwort

0

Bei der Suche Modelle Suchmethode fügen Sie diesen

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

und fügen Sie diese Spalte zu Ihrer Rasteransicht

[ 
    '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'), 
], 

Ps .: Sie können mehr über diese here

+0

Thnks lesen, aber in meinem Problem habe ich ein Feld 'Label' (type = text‘) genannt. In diesem Feld werden IDs (mehrere) von Labels gespeichert. Im Label-Tab sind nur ID und Name abgelegt. –

+0

Ich verstehe deine Frage nicht wirklich. Möchten Sie den Namen nach der Anzahl der Labels sortieren oder eine Spalte mit allen zu einem Namen gehörenden Labels anzeigen? –

Verwandte Themen