keygenqt/yii2-autocomplete-ajax

简单搜索属性模型的模型ID的方法

1.0.3 2020-05-28 01:30 UTC

This package is auto-updated.

Last update: 2024-09-24 01:36:03 UTC


README

Packagist Downloads

这是一个AutocompleteAjax小部件,也是为Autocomplete | jQuery UI提供的Yii 2增强包装器。这是一个简单搜索属性模型模型ID的方法。

安装

安装此扩展的首选方式是通过composer

"require": {
    "keygenqt/yii2-autocomplete-ajax": "1.0.3"
}

使用方法

视图

<?= $form->field($model, 'complete_id')->widget(keygenqt\autocompleteAjax\AutocompleteAjax::class, [
    'url' => ['ajax/search'],
    'options' => ['placeholder' => 'Find by user email or user id.']
]) ?>

控制器

class AjaxController extends Controller
{
    public function actionSearch($term)
    {
        if (Yii::$app->request->isAjax) {

            sleep(2); // for test

            $results = [];
            if (is_numeric($term)) {
                /** @var User $model */
                $model = User::findOne(['id' => $term]);

                if ($model) {
                    $results[] = [
                        'id' => $model['id'],
                        'label' => $model['email'] . ' (model id: ' . $model['id'] . ')',
                    ];
                }
            } else {
                $q = addslashes($term);
                foreach (User::find()->where("(`email` like '%{$q}%')")->all() as $model) {
                    $results[] = [
                        'id' => $model['id'],
                        'label' => $model['email'] . ' (model id: ' . $model['id'] . ')',
                    ];
                }
            }
            echo Json::encode($results);
        }
    }
}

许可协议

Copyright 2016-2024 Vitaliy Zarubin

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    https://apache.ac.cn/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.