Yii2 AutoCompleate дубляж ввода текста?

Всем хай.

Есть форма поиска, первый и второй инпут я использую виджет от картика kartik\typeahead\Typeahead;. Когда я пытаюсь найти эвакуатор, то у меня происходит дубляж, я бы хотел от него избавится.

Сам пример как это выглядит:
dca51f093b04.jpg
Это таблица где юзеры сохраняют свою специальность
DmBZ6aqcV5aVmP.pngalt="image"/>

controller
public function actionCategoryList($q = null)
    {
        $query = new Query();

        $query->select('title')
            ->from('profile_has_category')
            ->where('title LIKE "%' . $q . '%"')
            ->orderBy('title');
        $command = $query->createCommand();
        $data = $command->queryAll();
        $out = [];
        foreach ($data as $d) {
            $out[] = ['value' => $d['title']];
        }
        echo Json::encode($out);
    }


view
Typeahead::widget([
                'name' => 'Search[category]',
                'options' => ['placeholder' => 'Искать специальности ...'],
                'pluginOptions' => ['highlight' => true],
                'class' => 'search-input-spec',
                'dataset' => [
                    [
                        'datumTokenizer' => "Bloodhound.tokenizers.obj.whitespace('value')",
                        'display' => 'value',
                        //'prefetch' => $asset->baseUrl . '/samples/countries.json',
                        'remote' => [
                            'url' => Url::to(['search/category-list']) . '?q=%QUERY',
                            'wildcard' => '%QUERY'
                        ]
                    ]
                ]
            ]);
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
@AlikDex
$query->select('title')
            ->from('profile_has_category')
            ->where('title LIKE "%' . $q . '%"')
            ->groupBy('title')
            ->orderBy('title');


Или
$query->select('DISTINCT title')
            ->from('profile_has_category')
            ->where('title LIKE "%' . $q . '%"')
            ->orderBy('title');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы