2017-02-17 2 views
0

Я установил yii2-jui через композитор.Yii2 Автозаполнение в GridView

Я хотел бы использовать AutoComplete в двух разных моделях, один раз в матери, один раз в иностранной модели. Это о Земле.

Теперь у матери (вид/земля/индекс):

use yii\jui\AutoComplete; 
use app\models\Land; 

[ 
    'attribute' => 'name', 
    'filter' => AutoComplete::widget([ 
     'model' => $searchModel, 
     'attribute' => 'name', 
     'clientOptions' => [ 
      'source' => ArrayHelper::map(Land::find()->select('id, name')->orderBy('name')->all(), 'id', 'name'), 
      'autoFill' => true, 
      'minLength' => 2 
     ], 
    ]), 
], 

Проблема заключается в том, что она не работает, из-за OrderBy конечно ключи не от нуля вверх. Как только я сбрасываю ключи, он начинает работать. Теперь у матери это не «действительно» проблема (на самом деле это все еще проблема), но как только я хочу использовать ее в «чужой» модели, где я должен искать фактически ключ (id), а не название Земли, это не сработает. Что мне не хватает? Не могли бы вы указать мне правильное направление? Большое спасибо!

ответ

0

Я понял это:

с точки зрения матери:

use yii\jui\AutoComplete; 
use app\models\Land; 

[ 
    'attribute' => 'name', 
    'filter' => AutoComplete::widget([ 
     'model' => $searchModel, 
     'attribute' => 'name', 
     'clientOptions' => [ 
      'source' => Land::find()->select(['name AS value', 'name AS label'])->orderBy('name')->asArray()->all(), 
     ], 
    ]), 
], 

в иностранной зрения:

use yii\jui\AutoComplete; 
use app\models\Land; 

[ 
    'attribute' => 'land_id', 
    'filter' => AutoComplete::widget([ 
     'model' => $searchModel, 
     'attribute' => 'land_id', 
     'clientOptions' => [ 
      'source' => Land::find()->select(['id AS value', 'name AS label'])->orderBy('name')->asArray()->all(), 
     ], 
    ]), 
], 
Смежные вопросы