2017-02-10 9 views
-2

私は2つのテーブルを持っています。1.名前: - ID、名前、ラベル(テキストタイプ)。 2.ラベル: - id、name。 yii2では、名前mdouleのグリッド表示があります。私はラベルフィールドの検索とソートフィルターを追加したい。Yii2関係のソート(多値列)

EX:

テーブル名: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'), 
], 

Psの:あなたはこのhere

+0

Thnksについての詳細を読むことができますが、私の問題では、私は「ラベル」と呼ばれるフィールド(タイプ=テキスト」)を持っています。このフィールドには、ラベルのID(複数)が格納されます。ラベルタブには、IDと名前のみが登録されています。 –

+0

あなたの質問は本当に分かりません。ラベルの数で名前をソートするか、名前に属するすべてのラベルを含む列を表示しますか? –